找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8414|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
! z* T+ z  C3 c) W
  1. Sub AddRectangleAndArrayAndTrim()
    ! w, y" e& M9 I
  2.     ' 声明变量
    % E7 I, F9 w0 B6 \2 s3 b/ m2 m
  3.     Dim lineObj As Object  C4 X) [. t7 T1 t% n( H
  4.     Dim startPoint As Variant
    # t8 G: @$ U7 n. B1 q0 S/ h4 h! p
  5.     Dim endPoint As Variant
    ) I3 f" }5 w; R. u9 \
  6.     Dim rectWidth As Double
    : k# j+ _* _8 D3 S; J
  7.     Dim rectHeight As Double  T  W  z+ q  s3 A* {& g/ z8 y
  8.     Dim rectStartPoint(0 To 2) As Double1 Z7 _' M3 U! Q, l5 ?: y- [
  9.     Dim rectEndPoint(0 To 2) As Double
    ( x' T7 v1 L3 b/ I0 i& D
  10.     Dim rotationAngle As Double
    8 `" i) Q& l) g5 _
  11.     Dim rectObj As Object; D8 Q: s: g* u; I
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点+ k# T  O$ E& g( J
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    9 B7 @# x6 R% J$ ^) b/ F
  14.     Dim newRectObj As Object ' 复制的矩形对象$ }. G8 d8 N3 }
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    6 x2 y; r, c& l2 Z) B, O$ x. _
  16.     Dim intersectPoint As Variant ' 交点
    ! a$ [& j( [8 S: L  c
  17.     Dim trimStartPoint As Variant ' 修剪后的起点9 A! n4 g/ Y7 ~. ^) ^
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    * T. S: b, Q$ N
  19.     . K3 W1 S9 P' p0 X' s( G5 i  x
  20.     ' 定义矩形的尺寸; ^6 a2 G$ L6 a
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)
    5 m0 ]/ }6 b" s
  22.     rectHeight = 1  ' 矩形的高度(长边)
    5 l3 Y0 a  J* ^7 ~# \
  23.    
    ; F; }% o8 E5 C( ~  n, d
  24.     ' 提示用户选择一条直线2 _7 p2 s- `! _
  25.     On Error Resume Next
    1 w8 f9 l/ Y$ ~) @
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    3 c9 J0 H" {7 w/ [6 A! ~$ c
  27.     On Error GoTo 0
    * _2 i, C. Q+ _* v# Q: |. M- C
  28.    
    & m  ?5 P& J6 O
  29.     ' 检查用户是否选择了直线6 K8 @9 |( V; u# e5 Z7 U
  30.     If lineObj Is Nothing Then+ }1 g! C* B, Y8 R' K+ Y
  31.         MsgBox "未选择直线或选择无效。"
    7 d! v8 h. }* L$ Z- Z# h7 h
  32.         Exit Sub% Q. u% m+ c- F
  33.     End If
    9 ~, {) Z: ]$ t% W
  34.     ) O8 r" v! h5 M3 U7 @
  35.     ' 获取直线的起点和终点
    1 I& ~" t2 Z) i
  36.     startPoint = lineObj.StartPoint- z2 c, j+ a& d4 j. m3 q
  37.     endPoint = lineObj.EndPoint: b  L: K) ~8 H" p
  38.    
    8 M& Q% w+ H% Y( g8 m% k" k
  39.     ' 计算直线的中点
    + F* G( p/ S  u8 s' C
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2( a) @3 |/ J( q/ I, ^1 g. Z0 C& X9 K
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 24 \. }. z+ r: O& F
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 23 p7 h: d8 R3 H; k9 |" E" w" y4 K
  43.    
    $ ]% y9 i3 q! g: X$ ]! a; `- T+ }
  44.     ' 计算直线的角度(用于矩形的旋转)' W% i) `. Z( U; I
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    ; |6 Y9 S  s) @. C' U
  46.    
    6 H  Y5 A4 }3 u& D2 j4 g7 o4 x; |8 C: r
  47.     ' 计算矩形的起点和终点8 |2 Q$ C' d$ x+ p3 K; ~' h5 c) [* l
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))# |- G, Q1 C: k
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    9 ~0 K7 t2 v& Q1 X( r+ O
  50.     rectStartPoint(2) = startPoint(2)
    / ~9 y2 B! g1 _  q/ M: E8 d
  51.     / P* q* J9 ]+ J4 Y" `
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
    8 Y9 S- {5 {9 B7 X) d* q: z
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle): N9 ^+ A* j4 h3 h- c; b
  54.     rectEndPoint(2) = rectStartPoint(2)5 Z7 c6 t3 x' {, d5 P) ]
  55.     $ f1 j/ v3 E# T7 ]. K
  56.     ' 定义矩形的四个顶点
    8 Z3 c4 z2 {8 M5 E5 h! T
  57.     points(0) = rectStartPoint(0)' v) `1 i4 T. `+ [5 i* E/ B, ^
  58.     points(1) = rectStartPoint(1)
    $ b5 w  s" f2 I% s) _
  59.     points(2) = rectEndPoint(0)( @: f5 v* e7 @; J$ r" v: O
  60.     points(3) = rectEndPoint(1). h/ G/ T% `4 X8 y7 s
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))' e0 L* z2 Y8 G' w& q  ]) Z; i
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    0 b: [* {: v( e; {
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    8 ~. ~4 R0 c% q  v% V- N% t& I
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    ) s5 h6 g3 ^6 I
  65.    
    1 G1 |; R, A3 J; }  I3 I
  66.     ' 创建矩形, z) q5 t6 [# W* Q! c$ s* z8 f8 y
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    ) u( ]' V) y% r7 K+ L
  68.     , g7 k) ~1 W* l- q6 ~6 I
  69.     ' 创建圆周阵列(手动复制和旋转)
    4 t+ N9 N+ q, ]- |7 z! {; u
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度1 g+ m8 d" Y, Y, S
  71.     Set newRectObj = rectObj.Copy
    " A  _8 s5 o0 B3 e2 E9 [; z
  72.     newRectObj.Rotate centerPoint, rotationAngleRad4 C6 m- A' h7 f( z  g- _/ l
  73.    
    8 H) K( p3 J) I3 e
  74.     ' 修剪直线
    - i; t9 G9 }, ]
  75.     ' 查找直线与矩形的交点
    8 a3 R5 e7 |2 w+ A1 N4 |# p
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)# Q4 D# {1 a' y- W- \
  77.     If Not IsEmpty(intersectPoint) Then6 g4 i- n# X+ m
  78.         ' 修剪直线的起点* Q+ M7 U, m! ^) ~/ J) x
  79.         trimStartPoint = intersectPoint& L& a: g( Y" C- h
  80.         lineObj.StartPoint = trimStartPoint5 I* l1 y* ~& b4 _: |/ }/ ~$ p
  81.     End If! E' i4 k# t8 z, o0 C+ z' w; p$ s  N
  82.     : [) b  n' Q4 o2 K1 T/ M
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)0 v5 `# j- S6 y! R
  84.     If Not IsEmpty(intersectPoint) Then3 w( b" S9 h( B+ l
  85.         ' 修剪直线的终点
    # L  Q& Z; p5 c) Q
  86.         trimEndPoint = intersectPoint, S+ Y& S; n+ D$ x1 a
  87.         lineObj.EndPoint = trimEndPoint3 ]  c; m1 c4 u
  88.     End If
    4 z) ]8 N. V/ W* w' a
  89.    
    ! g) w8 i& p/ b" L2 L  r
  90.     ' 刷新视图
    4 Z6 ]! i: }' e, S
  91.     ThisDrawing.Regen True
    ) h/ T" B% H+ l6 V, Z$ f/ g
  92.     7 Z0 ~) H. W# \9 o! }1 K. |$ I
  93.     ' 提示用户0 Z7 f  y$ P0 j% Q& N  a; G
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    4 Z% ^4 M+ V5 }) l# Y3 Z5 X
  95. End Sub
复制代码

+ Y) w" ?, a( _7 h0 j: b# H5 C  m
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。
; G6 ~* I; K, B  z首先怎么保证AI模型的回答不会有幻觉,你保证不了。5 ]; `# S7 [6 L) @! g9 {& W& R
其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
  m8 {' {; U% A; q2 U4 n5 b3 l: P0 |7 L最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
8 t9 X; ~6 K6 G那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
% b+ @8 y5 O& _- t( W# j* n
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
1 L" D1 V$ o$ x
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-10-17 21:26 , Processed in 0.077169 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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