找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8328|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
0 n# {" E, ^% i' l$ {5 U* U6 f5 P9 K
  1. Sub AddRectangleAndArrayAndTrim()! U( ^  g) B6 i2 P5 g0 v2 u! r
  2.     ' 声明变量
    ! p8 K. T! l+ C' M# d2 o( K
  3.     Dim lineObj As Object: N) ?6 U3 [3 k3 T1 O
  4.     Dim startPoint As Variant" {. h& M3 w) Q) |
  5.     Dim endPoint As Variant: s4 n4 p0 m% Q( T! r; M' N
  6.     Dim rectWidth As Double
    0 M+ L3 X" f* G+ E4 i
  7.     Dim rectHeight As Double
    ' B9 w% e6 O/ U7 A' j" q
  8.     Dim rectStartPoint(0 To 2) As Double
    & |9 L* f( q) Y
  9.     Dim rectEndPoint(0 To 2) As Double3 p# ]7 s6 b4 G  G" x& B; p
  10.     Dim rotationAngle As Double
    ! @: b3 c& P* A; J5 \; L
  11.     Dim rectObj As Object. d& [+ h: D& u2 d+ ~6 [4 \2 l
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点4 H/ o# O( q& L" u# u
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点, h) t- `. A! X. C
  14.     Dim newRectObj As Object ' 复制的矩形对象
    9 y( i8 X* o+ ~
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    : m' @1 e. v- t# b
  16.     Dim intersectPoint As Variant ' 交点
    # F0 [8 Z$ V+ ~( p7 B' s
  17.     Dim trimStartPoint As Variant ' 修剪后的起点
    ( O# w0 ]# ~, Y. y
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    3 u! k, D1 x% ^% Y+ B4 G! Z" ]3 l# D: J
  19.    
    # h3 K0 s, x& K& g' F/ ]. u
  20.     ' 定义矩形的尺寸4 D9 b& p% r+ A9 Y- k* J$ M
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)
    1 I0 O- Q2 y0 D" c4 l
  22.     rectHeight = 1  ' 矩形的高度(长边)" S- v* M5 p8 o2 P/ v; q
  23.    
    8 H) D4 |) s8 I  k. ?: d( e* G) E
  24.     ' 提示用户选择一条直线. I  r: ]5 Z. Y1 ]
  25.     On Error Resume Next
    0 ^. k0 G, V( D4 W7 f
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: ", W* v% K+ q, {# u5 a
  27.     On Error GoTo 0& h4 ], K4 h+ \0 L5 k" h
  28.    
    * n2 V2 W. f2 ?% Y  Q0 k0 E# Y
  29.     ' 检查用户是否选择了直线
    - r  F2 Y2 f5 `3 X5 w) Z, h
  30.     If lineObj Is Nothing Then  F- K. N  q8 K$ N/ u* u
  31.         MsgBox "未选择直线或选择无效。"( t4 c4 Y4 P  f% C4 t; ^
  32.         Exit Sub/ F" ?+ p/ T1 Q$ Y
  33.     End If
    0 A0 ]  e3 [5 e) P/ X
  34.     ; `5 i, I) b! @( E8 L+ M5 {
  35.     ' 获取直线的起点和终点" e: t3 E6 v2 |6 e8 `7 ~4 J* D
  36.     startPoint = lineObj.StartPoint! E6 u/ t  d& o4 y- [
  37.     endPoint = lineObj.EndPoint8 v# x& e0 c* f+ h5 o  d0 S
  38.    
    # U& m* ~6 {4 |6 Y; j
  39.     ' 计算直线的中点
    : Y6 F/ E% ^( a1 y$ K
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 23 m5 d0 f- N: F
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2# _$ b. b! R8 ?6 O; r
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    $ N) U3 v# e6 v+ j) r; I
  43.    
    * Q7 h; V$ {. \1 D5 x. F4 q5 m
  44.     ' 计算直线的角度(用于矩形的旋转)' E9 p, _0 _8 R( d! z
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))) e3 f6 `/ N6 C3 l
  46.     3 Z5 I6 u9 m! \4 O6 V8 B
  47.     ' 计算矩形的起点和终点, @# I  a. H" H  A
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    $ ^" {3 _" V" j. ?9 E) E' x9 V3 U
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))& B6 {8 t5 t! S2 ^6 O
  50.     rectStartPoint(2) = startPoint(2)
    " [$ c! L* ^" C1 `, R$ \
  51.     0 Z/ Y, ?% [! c$ c# ^  o1 O
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
    / F* B$ T4 M, R. n2 c# z
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)0 c; x7 F, z0 S, _+ J3 K. s6 `
  54.     rectEndPoint(2) = rectStartPoint(2)& P3 g- f  g2 N
  55.       k+ Y8 F0 s2 ^( f8 L' n; a* d
  56.     ' 定义矩形的四个顶点% }, v; `% F" G) b  Y" w
  57.     points(0) = rectStartPoint(0)
    * e4 J' }& Y) E7 _$ T0 w9 l( j1 p' q
  58.     points(1) = rectStartPoint(1)
    - M8 G8 ~7 \$ o6 m7 U6 ?
  59.     points(2) = rectEndPoint(0)
    % T" q: S+ m9 S+ D- G& d2 x
  60.     points(3) = rectEndPoint(1)- K7 S( k% L3 r+ d+ M& d$ H
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    2 j; ~+ {3 _* T& O  i" P
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))1 |1 v* G& O1 N4 O- N
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    , g8 R' [% }+ D, G* t
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))3 m5 z8 x6 u% j" Q# Y1 W! m- {
  65.    
    . y2 g1 q4 i+ c9 t, b* {+ \) n' a
  66.     ' 创建矩形
    3 W( m0 U" i$ Q- |( a7 q
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    ' r3 p7 h0 N2 c7 C. S5 I
  68.    
    8 l8 k( {; M& Z( x
  69.     ' 创建圆周阵列(手动复制和旋转)
    6 w  L5 J* W0 q, ~1 v
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
    0 U# ]7 ?) P/ x* g
  71.     Set newRectObj = rectObj.Copy% h; j2 F3 [* F- y# u' n7 q  `( m
  72.     newRectObj.Rotate centerPoint, rotationAngleRad$ a) d( V0 ^9 X3 z. v/ t
  73.    
    $ H" O, [2 m% u
  74.     ' 修剪直线; U4 R" R8 Y* c! \
  75.     ' 查找直线与矩形的交点8 F  p8 H" n9 M
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone); `) y% z+ }1 V  G
  77.     If Not IsEmpty(intersectPoint) Then
    8 s4 ?$ i. ^$ V7 [, r" p
  78.         ' 修剪直线的起点& q5 L3 J, N* |1 N5 y
  79.         trimStartPoint = intersectPoint
    3 Z+ e$ b/ P4 N1 Y( `, Q
  80.         lineObj.StartPoint = trimStartPoint! d9 J# Q- M6 f& v! D
  81.     End If; s- d- u# }$ r6 G8 _& }( W6 @- e
  82.    
    9 ~' G! ^% O* j$ q' y8 U
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)7 n2 i! g, M$ t; {) Y
  84.     If Not IsEmpty(intersectPoint) Then9 e, a4 f0 k9 A9 d
  85.         ' 修剪直线的终点+ C" j8 N; p# D3 X5 V0 m
  86.         trimEndPoint = intersectPoint4 c  t- K3 H4 Z4 R/ q6 _( D
  87.         lineObj.EndPoint = trimEndPoint
    ! T; \! y1 t/ v0 F5 v2 e$ b* ^
  88.     End If# h+ T8 u$ h) D8 c8 W
  89.     $ k0 `6 k( d) I! ^% l: Q' `
  90.     ' 刷新视图  K9 u8 ^2 `8 V9 f" h
  91.     ThisDrawing.Regen True
    ( j9 ^2 |9 H7 E* J- T
  92.    
    % i& n% b5 @- P# o" K1 F. t5 y
  93.     ' 提示用户2 R1 k& N! z  o' h$ \1 D5 _% N
  94.     MsgBox "矩形、阵列和修剪操作已完成!"$ ~7 z5 A. y( I
  95. End Sub
复制代码

# D9 n& N( @8 f' H! u
! U. }- N' A: A4 f
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。( l( B9 ?7 V. M( R4 c2 w$ C
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
. n& K( [4 K0 Z其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
3 J4 J- T. N- [' m" V最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
8 M- s+ f: T% m" q那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂0 A$ X2 [6 T' r* w0 S! B
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂2 K" P& B4 O& H, |* C* [" V
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-8-25 10:23 , Processed in 0.066255 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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