机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4413|回复: 9
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2025-2-7 09:55:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?) ]1 z% n/ i7 W/ A2 f. \- n
  1. Sub AddRectangleAndArrayAndTrim()5 ]0 a4 g$ L! Z3 z" Y
  2.     ' 声明变量
    % B2 e' O! r9 {4 K& m, }, w* ^
  3.     Dim lineObj As Object
    & z8 p* D, Y2 u1 j
  4.     Dim startPoint As Variant% k/ F7 c  w8 B: p4 }: P. m( ?
  5.     Dim endPoint As Variant
    ) ^% W) [  |& T6 h7 [
  6.     Dim rectWidth As Double9 i( @7 b: Q2 u5 Y8 ^$ \! V# b
  7.     Dim rectHeight As Double% t3 K, f1 m9 Z- s
  8.     Dim rectStartPoint(0 To 2) As Double- {0 s" z$ M5 V- ]
  9.     Dim rectEndPoint(0 To 2) As Double
    6 m# D% N% j. r6 c) d5 C0 V1 @
  10.     Dim rotationAngle As Double
    : }! `/ r% K8 G- p
  11.     Dim rectObj As Object
    . }; A. u2 v4 N- f$ g
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
    # ~* ~9 a) b9 K  ^) z" k% @9 H# T
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点$ `" r8 p9 ~. b5 p+ `
  14.     Dim newRectObj As Object ' 复制的矩形对象
    ; _* `9 Y0 M( z
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    / O+ ?% l+ H+ H3 U0 t+ ]9 Z
  16.     Dim intersectPoint As Variant ' 交点' S/ E, a4 e  b% W1 O" d( ]
  17.     Dim trimStartPoint As Variant ' 修剪后的起点/ i7 K& g% B8 ~' l
  18.     Dim trimEndPoint As Variant ' 修剪后的终点0 k' g5 o8 R7 }+ b- ]3 T) q7 V
  19.     : X# Y- p( b- y9 W
  20.     ' 定义矩形的尺寸
    5 w+ I0 L4 J# X# q: m& ?
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)4 r; U4 A/ C; A
  22.     rectHeight = 1  ' 矩形的高度(长边)7 s( X  o1 I6 V
  23.     2 u0 K, q; H: h& ^  c; i' O+ k
  24.     ' 提示用户选择一条直线' }2 @1 I9 |# R: d
  25.     On Error Resume Next: D6 ]( H, j% I1 {# |
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: ": J' f; A; T; e( R# e1 S! k" ~  c
  27.     On Error GoTo 0
    ' f: ]6 c4 @9 x$ u' K( `6 a
  28.    
    : [+ W) q1 G3 f" i
  29.     ' 检查用户是否选择了直线0 s- r: E3 T! W; B( k8 e! I
  30.     If lineObj Is Nothing Then
    ' w9 k, P8 R! U1 v/ d8 T3 e3 a, ~
  31.         MsgBox "未选择直线或选择无效。"
    $ T; o# r* F# e4 ?/ E$ e- G
  32.         Exit Sub
    % \- u* P9 s% S2 [* t. j
  33.     End If
    , H( B# ^, G- q! c; l7 t1 k! q: \
  34.     7 e1 `! Y7 m) F. w, k# m
  35.     ' 获取直线的起点和终点
    ' P4 O) m+ L$ t8 C) y- S* C, c( v$ s
  36.     startPoint = lineObj.StartPoint
    % [" a. h  z2 `# b
  37.     endPoint = lineObj.EndPoint( Z2 ~& H. e! l/ L0 B: W$ K' b
  38.     9 X/ L+ u7 E4 |9 d/ L7 ]
  39.     ' 计算直线的中点) c' ]) _( s* E- w& e  [6 P
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2. _0 T% H( S/ v6 {+ }
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2
    ( X, D4 [: M8 X4 T+ ]+ t
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    . O* [$ b1 C8 Z1 a. ~
  43.    
    6 e4 j  M1 B+ ?$ z
  44.     ' 计算直线的角度(用于矩形的旋转)/ E, W7 D3 u/ i2 H' u2 w$ P
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))- H( n" s% ?" d% V$ e
  46.    
    , c0 X3 @! O# H
  47.     ' 计算矩形的起点和终点
    7 C6 X9 y2 U4 P7 f
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    ( X' R+ J0 i- S+ }: W
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    ; q3 a; M2 R, g: k: b
  50.     rectStartPoint(2) = startPoint(2)
    8 k" t- V. t+ m8 e
  51.    
    9 E1 E$ I+ r8 B, J
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
    8 L$ Q/ x7 }' @- ?
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)5 L+ t' k; [& P- S5 t  W! a
  54.     rectEndPoint(2) = rectStartPoint(2)
    6 r& e, H4 Z1 u- W
  55.    
    0 O' s; A0 W! a0 J
  56.     ' 定义矩形的四个顶点
    . P" T) l8 X; O5 \5 Y+ p5 B9 Y
  57.     points(0) = rectStartPoint(0)* k6 ]. b3 o, H4 @% ^. O( P
  58.     points(1) = rectStartPoint(1)/ N" x; w  q, p  J, ?! C2 E& p
  59.     points(2) = rectEndPoint(0)2 Y9 B  ?* U6 N, d5 G2 [: g4 y5 U
  60.     points(3) = rectEndPoint(1)
    + D& }  u) }) ~$ |, A
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2)): N) H3 @. }: F4 B& F/ R
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))' G9 o0 X0 J9 W5 G! O
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    . i! Q, Z) _1 k( t5 u( T
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    6 X' Z: l$ I2 \( c0 t% [7 _0 q
  65.     $ Y, Y* x7 M4 f- O) d6 W
  66.     ' 创建矩形. G0 G; t8 e! r( L, h; j
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)4 u; o0 s7 m' w. t) ?/ {% o9 G$ t) N# B
  68.     1 N' |$ y& Q- W0 U" X! I+ h7 `
  69.     ' 创建圆周阵列(手动复制和旋转)
    9 x2 C  z. J1 K, ~+ p
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度+ N: j  }( @5 Q; W7 E
  71.     Set newRectObj = rectObj.Copy9 s, w$ `& z/ ?5 h6 W5 K( b  R
  72.     newRectObj.Rotate centerPoint, rotationAngleRad$ Z8 `3 B, z) Q5 h9 W4 u
  73.     ; f. p: V& V' R
  74.     ' 修剪直线
    9 q. `$ P# j- D$ ^& q+ g
  75.     ' 查找直线与矩形的交点! w5 a4 h5 x( G( d
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)+ |7 x5 {$ G+ U% @7 ]( U
  77.     If Not IsEmpty(intersectPoint) Then
    ! ?5 k0 c$ ~( J9 T6 `. [
  78.         ' 修剪直线的起点
    ! g" o* n7 I' j  c" M  i% S
  79.         trimStartPoint = intersectPoint! ], w2 A: L4 Z5 o+ V# e
  80.         lineObj.StartPoint = trimStartPoint
    . {) p/ Q% w  a* O1 C
  81.     End If* H! f3 i; q' J* K( F- J# c
  82.    
    6 w' T7 C$ ?  i4 z/ \3 F9 e
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    : ^& X6 T! y9 t! _+ B
  84.     If Not IsEmpty(intersectPoint) Then; m  j7 I& Z9 i, n, u
  85.         ' 修剪直线的终点
    * E! X( ]% Y$ l6 ^) d" e8 W& _
  86.         trimEndPoint = intersectPoint
    + J1 M: @4 B! z! h! }5 w+ l1 }
  87.         lineObj.EndPoint = trimEndPoint- g) G) p% S% Z" R* \- S' {
  88.     End If5 Z4 |0 d, u& E: b& Q
  89.       k" Z9 u4 U5 {( X
  90.     ' 刷新视图# B# Q6 |* K! p6 K2 n
  91.     ThisDrawing.Regen True( H  ~: G: X$ v
  92.    
    # J( F$ d; s- L4 B
  93.     ' 提示用户
    6 m2 Y9 T( R) Z, n
  94.     MsgBox "矩形、阵列和修剪操作已完成!"9 ^; i3 j# x% j! M6 ?' P2 Q/ e9 l
  95. End Sub
复制代码
' c, }. N& a0 ^  A: H% Y

/ x( L5 O5 V0 h7 V4 Q
回复

使用道具 举报

2#
发表于 2025-2-7 10:01:48 | 只看该作者
blender也可以。去年试过一次

点评

bl集成了py接口  发表于 2025-2-8 10:31
blender是3D软件,具体说说怎么应用吧。  发表于 2025-2-7 10:10
回复 支持 反对

使用道具 举报

3#
发表于 2025-2-7 10:34:22 | 只看该作者
这叫脱裤子放屁,没有任何可行性。
+ [% Y  f! T8 x) d4 g首先怎么保证AI模型的回答不会有幻觉,你保证不了。
# x2 W+ ?! f' e* V8 i: |其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
) D; f. ^. O! Y2 Z( s最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。3 G+ c" w  }# F/ y' d1 T2 d1 J
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
回复 支持 反对

使用道具 举报

4#
发表于 2025-2-7 16:04:55 | 只看该作者
这个把简单的事情复杂化了
回复 支持 反对

使用道具 举报

5#
发表于 2025-2-8 09:27:49 | 只看该作者
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
8 s9 \6 j5 ^  S# q" q+ l2 g* E
回复 支持 反对

使用道具 举报

6#
发表于 2025-2-8 09:28:01 | 只看该作者
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
4 M% A. B; `9 _& c
回复 支持 反对

使用道具 举报

7#
发表于 2025-2-8 09:29:43 | 只看该作者
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
回复 支持 反对

使用道具 举报

8#
发表于 前天 12:19 | 只看该作者
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-2-20 07:43 , Processed in 0.058098 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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