找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8130|回复: 9

还有哪些例子可以用DEEPSEEK帮助CAD绘图的?

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
) F& E) U3 ?: b) X; T4 o# ~
  1. Sub AddRectangleAndArrayAndTrim()7 g8 G) ?. G; F, R: w. U
  2.     ' 声明变量
    0 j( c; N" w5 B8 x5 W1 M
  3.     Dim lineObj As Object" f+ z* k' j; i/ _) J7 f& S4 k
  4.     Dim startPoint As Variant
    . B2 U) ^) Z  m( T5 ~' N$ ]1 P5 m
  5.     Dim endPoint As Variant
    : q% t% l% `5 l# S5 [2 z, Q9 f
  6.     Dim rectWidth As Double4 \2 F, c' E: X8 C
  7.     Dim rectHeight As Double1 J8 C8 j: ^, ^2 b9 m
  8.     Dim rectStartPoint(0 To 2) As Double
    " {/ d! |, d0 Q9 ?) M, N! A: ^
  9.     Dim rectEndPoint(0 To 2) As Double
    2 ]8 t! A( K8 z8 y
  10.     Dim rotationAngle As Double
    ; |; Q# |7 f9 l
  11.     Dim rectObj As Object% t# h7 T; r( S1 i
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
    0 w# x1 P* f* b- K) e  y2 r
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    - Q9 U$ S# d  u0 T7 K' f( i& r8 m
  14.     Dim newRectObj As Object ' 复制的矩形对象
    ) y) N; ]! B6 x
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    $ m0 m: G" ?6 y- h* `
  16.     Dim intersectPoint As Variant ' 交点
    9 Y' s+ Y8 ]& H' n* B& r
  17.     Dim trimStartPoint As Variant ' 修剪后的起点
    - }* S6 t/ O: i$ w% u
  18.     Dim trimEndPoint As Variant ' 修剪后的终点9 o+ ^1 l* y6 a( V# d  ?7 N* d' y
  19.     * D7 _* j7 M* M$ N3 s' ?
  20.     ' 定义矩形的尺寸
    + f/ Y% S/ u) R$ `
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)- S9 G8 Q/ d: T( s1 T
  22.     rectHeight = 1  ' 矩形的高度(长边); ^9 r& @5 c5 C' y- ~9 ~
  23.     1 n6 z8 K! U+ \: w6 G: e+ \) R
  24.     ' 提示用户选择一条直线
    + _; e  N3 X4 y( e. o: o  M
  25.     On Error Resume Next
    , V) g, ?  x7 b5 i: |, g+ u
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    ( ^7 E/ M5 ?8 m/ X8 O+ Z
  27.     On Error GoTo 0* F$ s. h7 T: N2 W+ ^9 _
  28.    
    3 f3 X# G! Z3 ~" o
  29.     ' 检查用户是否选择了直线( H& U1 M0 b4 W3 w: T
  30.     If lineObj Is Nothing Then
    ) N* }2 |  [$ `" W
  31.         MsgBox "未选择直线或选择无效。"
    4 |- u4 c3 A2 s% w  [7 ^, R
  32.         Exit Sub  ?6 u4 l: `' E
  33.     End If
    3 S9 ^' J/ l4 g+ h0 a# g
  34.    
    * x3 l" W5 ^9 _: b7 V% o& S# D
  35.     ' 获取直线的起点和终点' i) h& C4 d8 `$ M3 ^0 ~! m
  36.     startPoint = lineObj.StartPoint
    . `# k; f1 q- Q6 z7 E
  37.     endPoint = lineObj.EndPoint" R# S1 W8 `5 O
  38.    
    2 }  A1 Y$ G" j; z# R, a" _9 D
  39.     ' 计算直线的中点/ o  g1 ^+ {% v5 K+ U- C: A
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2- ]0 Y. I+ h% R+ |- ?  _2 {1 v
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2( `% _3 f) }  r  O+ `8 Y; v7 D5 w
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    ; o, X7 o. ~* a" T6 V2 L; R6 U) D
  43.     ! \6 V- L4 q3 H4 e9 v8 q
  44.     ' 计算直线的角度(用于矩形的旋转)
    ( n( q5 Z$ o' [5 Z1 }- U
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    ( x  q$ h9 o/ }0 I" C; k0 d
  46.    
    4 n5 h$ Z& y$ l, ^0 _+ q- F
  47.     ' 计算矩形的起点和终点
    ) k0 z' _0 H" ^
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2)), p5 x* x" j; c
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))( |' q5 F1 ^2 F- k
  50.     rectStartPoint(2) = startPoint(2)
    ' Y. U/ A1 O, \6 n- [* ]9 f. Y
  51.     8 _7 o! @( V/ W7 i3 X7 Y3 {' @3 Q
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)2 R7 }# B# y; C/ e
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
    . x. m0 z' L9 K# _+ Q- w
  54.     rectEndPoint(2) = rectStartPoint(2)
    5 z* o. P# _( A
  55.     ; |) K  Z+ G" p1 b) E8 R5 B6 w
  56.     ' 定义矩形的四个顶点1 O. J3 s$ D, u7 O; t- R) d. @, H. q
  57.     points(0) = rectStartPoint(0)  T: N- F, d4 n2 H  a& `1 M
  58.     points(1) = rectStartPoint(1)
    & A: [, f1 f0 N) c! `
  59.     points(2) = rectEndPoint(0)
    % Q# w% }# f9 h7 ^# p
  60.     points(3) = rectEndPoint(1)1 u- B4 W7 t8 J4 |
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))3 S1 w' O& j. O# Q. L
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))# t! i9 H0 H, ^3 s8 X
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    # W1 z4 J$ J7 T/ `- X
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    ! ^; f: x9 X: f9 M0 [1 a! P, b6 K; s
  65.    
    1 X! |( n5 Q( f
  66.     ' 创建矩形8 A- n' @! ?' [# Z: N5 @0 O, k4 a0 Z
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)' N1 A; t& _' U" n) g% p  ~* ?) Z
  68.    
    $ Y6 Y, h  K  U* C  H- n5 {4 v
  69.     ' 创建圆周阵列(手动复制和旋转)
    / z  M9 g2 \9 J$ }. ]  P
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
    ; X0 ^: l  W2 W! S
  71.     Set newRectObj = rectObj.Copy4 I  M' F- |6 a% F
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    / E0 e3 u6 g! l' P+ _9 I
  73.    
    2 L- W: Q9 @6 M
  74.     ' 修剪直线5 ^3 q* {: a! R: ]
  75.     ' 查找直线与矩形的交点6 @" y6 ^' e: w9 A- F
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
    4 ^% z8 W6 v8 G; @2 I2 [/ K9 B
  77.     If Not IsEmpty(intersectPoint) Then. F6 b1 B' o+ }9 N
  78.         ' 修剪直线的起点
    ( V4 @; s; {  o2 q! s5 }4 `3 K
  79.         trimStartPoint = intersectPoint
    : Q: }9 l. \9 W1 z) e
  80.         lineObj.StartPoint = trimStartPoint& `# R# G4 [2 `+ [' r5 G! ^+ R% H
  81.     End If
    ) }1 V- \+ f: I* J, l9 h8 J
  82.     + l" _0 U3 F  J. `' ?7 Y% U( r
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    / b0 t" o3 o3 f: R( f
  84.     If Not IsEmpty(intersectPoint) Then4 t0 p* i% h, ~8 j
  85.         ' 修剪直线的终点! I0 z: P3 Y1 P9 O  Q! E# Z0 g/ c
  86.         trimEndPoint = intersectPoint/ g: Y0 v; [5 @+ Y+ O- j! X" F
  87.         lineObj.EndPoint = trimEndPoint# J( n% F7 r3 g- ]
  88.     End If
    7 G% z+ H( }+ _  ~, Q6 l5 v
  89.     + c' b; {- r* p" G, \% c
  90.     ' 刷新视图
    1 w) k% O- r3 w7 t3 l) i" E. [
  91.     ThisDrawing.Regen True
    : f, }; n6 s' b
  92.     7 l& u- F  j* V7 p
  93.     ' 提示用户
    ) K) O6 q' ?3 F8 H5 @7 W! |
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    : l* J2 `) M, S. A
  95. End Sub
复制代码

( \1 Z, }/ i/ [3 A5 g8 P
5 K" u* G: Z% _% d/ h
回复

使用道具 举报

发表于 2025-2-7 10:01:48 | 显示全部楼层
blender也可以。去年试过一次

点评

bl集成了py接口  发表于 2025-2-8 10:31
blender是3D软件,具体说说怎么应用吧。  发表于 2025-2-7 10:10
发表于 2025-2-7 10:34:22 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。4 K3 D: e- u' h/ Z# ]8 O
首先怎么保证AI模型的回答不会有幻觉,你保证不了。2 |2 |9 ~& i) q6 O, d5 i, j
其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
9 ?* P! T  E6 _7 i* c8 n9 J最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
* g3 N: N: Y/ T8 o  {2 Z/ T: [0 n那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂; L/ ^: G" y: S- B! K/ n8 o$ \
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
  c1 ~6 C/ }$ g9 A" H9 u
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-6-16 14:21 , Processed in 0.058950 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表