找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8413|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?& B. [4 s; Y( i1 K- c. h) f3 p
  1. Sub AddRectangleAndArrayAndTrim()& D3 W# q2 L& R! I
  2.     ' 声明变量
    8 }4 O8 [8 f7 j, [
  3.     Dim lineObj As Object
    3 Y2 c% ]  B/ F8 z0 g
  4.     Dim startPoint As Variant
    ; t6 o- `" g$ r
  5.     Dim endPoint As Variant0 H9 ?* V9 N) S! J& b+ [
  6.     Dim rectWidth As Double( d( q' C7 T7 L, F
  7.     Dim rectHeight As Double
    8 [: h0 q" l! k" `5 x; E
  8.     Dim rectStartPoint(0 To 2) As Double
    % D" ?! g% i6 n# b, C! x* G
  9.     Dim rectEndPoint(0 To 2) As Double$ z; j8 V- C- @- {
  10.     Dim rotationAngle As Double
    , [, ^: }) @3 H/ I' O
  11.     Dim rectObj As Object6 ]$ K: X8 ~! u
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点$ L0 ]: R# _7 M3 g, f% t
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    + }. j6 o6 J6 U
  14.     Dim newRectObj As Object ' 复制的矩形对象8 S7 y- t4 y7 d' G
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度): ~) w6 K! e+ Z7 K5 Z
  16.     Dim intersectPoint As Variant ' 交点8 t  o( O" T% F4 d/ E) N
  17.     Dim trimStartPoint As Variant ' 修剪后的起点$ {5 t4 O% I( g- m+ p) ]
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    4 B; A! H4 f( _; R7 ?
  19.     9 G& K6 j/ G3 _% ]' W
  20.     ' 定义矩形的尺寸. {# ^6 U8 _; |1 ~
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)1 T( G: t, |! ^
  22.     rectHeight = 1  ' 矩形的高度(长边)
    - m! q# X2 @4 T
  23.     & F5 ~2 z+ T  G0 ]2 W3 @) w
  24.     ' 提示用户选择一条直线( W! X8 c- o& H0 z4 J6 f# @/ c  _, D
  25.     On Error Resume Next
    9 q  k1 S3 l) l6 R4 W) J4 i
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    & c  {8 c" D1 h
  27.     On Error GoTo 0
    2 s4 D0 I+ c3 u
  28.    
    : g% T6 x4 h* l2 K; @6 l( R
  29.     ' 检查用户是否选择了直线0 \. d+ o' E1 `# G
  30.     If lineObj Is Nothing Then
    / t+ j: N6 H+ ^
  31.         MsgBox "未选择直线或选择无效。"' F; d; V) }: H! r! w& `+ B, `# G
  32.         Exit Sub! j% [. ^) z' V" L
  33.     End If
    ' h2 E. ^5 k; _) ]% F$ k
  34.     8 b9 F) b) \5 A1 q
  35.     ' 获取直线的起点和终点9 N: D7 k4 Z& x
  36.     startPoint = lineObj.StartPoint; r1 B1 D- x+ H1 g  _, B* W5 s3 x
  37.     endPoint = lineObj.EndPoint
    7 h2 ^5 d" L1 N4 ~7 A
  38.     * k1 k3 t9 [8 i) z1 O
  39.     ' 计算直线的中点
    " j% e9 z7 o$ V7 _8 m/ s
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    & s+ N; Q; x. `1 p! r$ O
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2. B' P$ H  [) o
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2- p9 `5 H& E1 k$ ~# A
  43.     % s, D- A5 m6 _, Z
  44.     ' 计算直线的角度(用于矩形的旋转)# ^; Z! h8 f0 ^+ W9 p( }
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    ( G/ \, T; X+ u
  46.    
    5 a) p1 P0 g( J# H" f
  47.     ' 计算矩形的起点和终点% O4 W- O$ A/ j, [9 `5 `
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))( g% c6 T4 Y1 f* |2 o; Z
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    + R' Y# f" w2 [: b0 F
  50.     rectStartPoint(2) = startPoint(2)
    % X' X) h& E" f- P( x9 g7 x
  51.    
    ; C4 ~5 B+ D5 o- J4 m/ Y9 m
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
    ' [" Q6 ]) w. J8 K% n0 d) O/ Z
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)( T' P1 |; M8 o. f
  54.     rectEndPoint(2) = rectStartPoint(2)8 u9 t; h) k1 g$ t8 j
  55.     3 Q, k; I% A. K% i! k1 E
  56.     ' 定义矩形的四个顶点/ z* l5 d0 K$ @5 B# ?( I$ v; l
  57.     points(0) = rectStartPoint(0)
    & Q8 M1 A. M) e6 p5 C0 A
  58.     points(1) = rectStartPoint(1)6 ^9 i, H0 t6 {9 X
  59.     points(2) = rectEndPoint(0)  q& L4 N3 a" x/ R4 C  k" d
  60.     points(3) = rectEndPoint(1)
    * P1 u! X$ Z/ c3 W
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))/ S$ Z0 F& X; V8 N
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))* A, S. B5 S7 z9 i  q
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))) u% p; a/ X% B) y
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))* ]/ k$ v* i7 C7 X6 T/ _+ o  I1 R
  65.    
    ; d$ _0 B! `6 s: @% w* K+ v8 ~
  66.     ' 创建矩形
    . z, o" U% V( U% r
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    % T; u& s; g. r( h
  68.     - O3 y. \+ s7 G! F3 K3 g
  69.     ' 创建圆周阵列(手动复制和旋转)
    - L& M/ g8 Z$ Q6 b& w6 f0 P
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度" F* r: {; A" b
  71.     Set newRectObj = rectObj.Copy
    / y7 ]# y- j. M- u3 b# X4 O5 I8 o
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    ; H* O8 u( b' p2 y8 {# O
  73.    
    ! b* L% j6 @1 v' H' _2 c, F
  74.     ' 修剪直线, R6 [" c, @4 ]9 J; U+ j" e
  75.     ' 查找直线与矩形的交点
    . g: a8 r6 W( q
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)" |# n7 R0 V: m0 S3 }
  77.     If Not IsEmpty(intersectPoint) Then
    . g4 @2 F* f1 R4 O) W! N0 Q* @- F! }
  78.         ' 修剪直线的起点4 v" ?& D6 \1 ^$ w2 o
  79.         trimStartPoint = intersectPoint- I; h; \  n" K
  80.         lineObj.StartPoint = trimStartPoint* e2 a8 f1 k$ s4 D
  81.     End If4 S% g. I7 G) W" E( s/ V
  82.     . \# K) T& \' Y7 t
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    4 z: D5 `- f; G3 }# l4 l  F0 R
  84.     If Not IsEmpty(intersectPoint) Then
      }/ I; n2 J8 H' `2 ^
  85.         ' 修剪直线的终点: e- U6 M5 M4 t& O4 g8 E7 Y2 h
  86.         trimEndPoint = intersectPoint2 w- K; F: _6 T2 x* f& l% G. j
  87.         lineObj.EndPoint = trimEndPoint7 M/ t" L5 y: y) g# Q
  88.     End If
    ! x0 `. P% ~/ O) N
  89.     3 ?+ M/ ]+ V3 F$ J5 H
  90.     ' 刷新视图
    7 x9 d  B4 ?, x0 i  u3 s" D
  91.     ThisDrawing.Regen True
    & ^+ X  z3 V4 h8 C# w9 P
  92.    
    0 }6 o- d( }1 n4 [) ]7 w
  93.     ' 提示用户1 J2 Y! I* h: E3 U8 W9 C1 r
  94.     MsgBox "矩形、阵列和修剪操作已完成!"" c& T9 W+ t0 r1 x
  95. End Sub
复制代码
$ t5 n4 t9 F2 b5 m5 ?
6 @3 m% p9 m- f2 a* N) x! T
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。
  g. b  ^1 G2 f4 W$ Z  G, H首先怎么保证AI模型的回答不会有幻觉,你保证不了。
7 [3 ]: u5 J, V其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
1 M) l8 I1 K# p; W  ]1 J( t最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。) N& M* Q5 N( m3 \
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
/ C- e  [. i: ?" ~. \5 }
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
7 ]* [& a  A! F$ y# o9 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-16 16:48 , Processed in 0.073021 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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