找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8136|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?( G/ w6 g- P6 c, v) L* D; F  _
  1. Sub AddRectangleAndArrayAndTrim()
    9 Z* Z- X& D0 T% @" n
  2.     ' 声明变量
    + I* n/ n% `% |" Y6 f9 k; z1 U+ b
  3.     Dim lineObj As Object# X; e3 n4 M; x: u3 J# G$ x. s
  4.     Dim startPoint As Variant
    + G0 I9 Z6 L- e- ], Q9 h# w4 a. C6 B
  5.     Dim endPoint As Variant% h3 [  o/ x$ K+ K
  6.     Dim rectWidth As Double' H" X, Y1 q; P
  7.     Dim rectHeight As Double# d6 \3 t' w; M! q' Q1 d
  8.     Dim rectStartPoint(0 To 2) As Double
    0 Y* ~! i/ X/ P, m
  9.     Dim rectEndPoint(0 To 2) As Double
    5 R" C/ H' x" J
  10.     Dim rotationAngle As Double
    ' E1 ?# D$ F3 n) X, g
  11.     Dim rectObj As Object
    6 Q4 T5 E$ |" T0 r/ B8 U
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
    8 ?/ F, `+ ~' l
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点6 M% \8 e( _- F; [) S! l
  14.     Dim newRectObj As Object ' 复制的矩形对象
    9 q6 O# [, b& c+ v
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度). L" i8 ?" ]. ]5 G
  16.     Dim intersectPoint As Variant ' 交点
    : N  }& N( g. K2 E4 ]2 r( c* J0 @
  17.     Dim trimStartPoint As Variant ' 修剪后的起点9 r* ~; u% U. J- `8 v2 m4 c- w
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    . v2 B$ M1 \) @% Y$ E
  19.    
    6 v: T0 s# z& i: ~
  20.     ' 定义矩形的尺寸
    ) s3 ]- d) O+ M* T8 k
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)
    ' v2 ^" Z2 y, P# i( B+ X. y4 ^# M  U" d
  22.     rectHeight = 1  ' 矩形的高度(长边)
    ; c6 o7 B2 U1 _4 s
  23.    
    5 V( d0 h+ o. r1 Q$ S9 a1 A& o6 A  @
  24.     ' 提示用户选择一条直线! c1 \; ^6 b* V) c$ z
  25.     On Error Resume Next- c$ Y* K  H8 j. {' `
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "" E# y# v' y6 J$ X. f' r
  27.     On Error GoTo 05 e$ Y3 W* A9 x6 v
  28.    
    * q) u2 J* A. u; h
  29.     ' 检查用户是否选择了直线
    ' A6 y. c& m2 s5 q# X
  30.     If lineObj Is Nothing Then
    ( _+ C% P: i" L- j4 p5 v- Z
  31.         MsgBox "未选择直线或选择无效。"
    & e3 q) \* a" z$ c% Q$ \
  32.         Exit Sub: {) c. p1 v! z1 l& j; S( {; L: v. _
  33.     End If
    # i! T6 }5 Z2 o; Y3 T1 U. q6 u
  34.    
    0 w* Q  E/ J, a6 ?
  35.     ' 获取直线的起点和终点$ u/ Z. G# C3 h- Q! |* @0 @/ _* D
  36.     startPoint = lineObj.StartPoint4 P3 B& }+ L: z; A5 I
  37.     endPoint = lineObj.EndPoint% |" _) ^* e# A3 S
  38.    
    6 e4 Y1 x! s4 Z0 x
  39.     ' 计算直线的中点1 ?- N) W4 @) {; w9 g
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2! D1 j3 s% V  X
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2' m& X: U$ s! a
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    ) Y  I# E# U$ L# V
  43.     . ~; J7 h* h' N& G* u1 j+ G
  44.     ' 计算直线的角度(用于矩形的旋转)8 a% r0 g! n$ N  y
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    4 W" {! O9 e8 Y+ i: n5 ~0 M
  46.    
    ; Y0 U3 m; q0 F* ]( W, L+ z
  47.     ' 计算矩形的起点和终点  d+ g* a- ~# o% w
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    7 f! c7 E" \- y4 L5 {- N' r
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))7 q' q$ c+ R: D3 H8 s% ]. K
  50.     rectStartPoint(2) = startPoint(2)4 v; x9 r, y  N
  51.     " o  x# u5 v0 o8 V, a7 ^) K2 v
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)# I; h! m9 c4 n# Q
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
    8 B: o! ~4 T* U
  54.     rectEndPoint(2) = rectStartPoint(2)) f# T0 v7 ]' e! ~" A6 X( G2 ?
  55.    
    ) j$ Q" Q/ A3 A0 M, c7 ?
  56.     ' 定义矩形的四个顶点
    1 Z+ J, u. S  i6 e8 o. R' X
  57.     points(0) = rectStartPoint(0)" b- p" v. N% m- y& j' |  O
  58.     points(1) = rectStartPoint(1)
    5 F/ [5 x1 R: D- Z# w
  59.     points(2) = rectEndPoint(0)" l* w8 G' l1 e" }  t. d5 {; i
  60.     points(3) = rectEndPoint(1), M: E. \9 E! l5 E
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    ) y( N* e/ D. {( Z- ~$ ?
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    9 U# o$ n& e/ H& @8 r) K" @* [
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))4 y0 b- W8 W5 H" h2 ^) o0 l
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2)), c! T3 T. y, w- p
  65.    
      w' ?$ H  n3 `" E; U
  66.     ' 创建矩形/ V# J6 A  {5 C. X: t" ?
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    3 C0 V8 V( t9 F+ P
  68.    
    ( Q1 E# P# g4 L! K: X
  69.     ' 创建圆周阵列(手动复制和旋转)' j0 c9 L+ V$ _  j: U3 f0 m
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
    + {  @, Q" x& j! y: q
  71.     Set newRectObj = rectObj.Copy
    ' q* l7 I$ \  c7 l/ d
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    ! @- H# ?' E; s% D5 L
  73.     4 g; p4 F+ ?/ W/ P+ ^7 Z9 l
  74.     ' 修剪直线6 U1 {: O3 v$ I6 S
  75.     ' 查找直线与矩形的交点
    $ p4 K. d/ B* \2 }1 _) D8 N$ d0 l
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
    + T$ S9 O7 t' k! g; m! _
  77.     If Not IsEmpty(intersectPoint) Then
    / _& @3 a0 I. ?* B+ I2 M
  78.         ' 修剪直线的起点! I! ^. B, z. p6 {  {
  79.         trimStartPoint = intersectPoint
    + }4 v2 j* h8 e6 K
  80.         lineObj.StartPoint = trimStartPoint- C5 M( H5 b% T/ p, n5 P
  81.     End If
    ( G4 k) [" F/ m% y+ u( N& T6 A) Y
  82.     5 O; [( C- x  M: C
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    6 f2 N! I* n6 h/ h/ u5 S0 d
  84.     If Not IsEmpty(intersectPoint) Then* `8 S( H3 ^* S2 l* L  l
  85.         ' 修剪直线的终点
    ! W. @5 R+ e) p8 T/ \# k4 `. S( y/ V6 f
  86.         trimEndPoint = intersectPoint# E; Q3 r9 `6 b6 _
  87.         lineObj.EndPoint = trimEndPoint
    ! f" G5 P' `6 G' r- }
  88.     End If
    " ?7 _* _7 m. P- @+ b, W
  89.     ) D9 Y* U+ L0 b9 i
  90.     ' 刷新视图
    & [$ k. d. }) @1 ?/ |0 I
  91.     ThisDrawing.Regen True% \, i5 {% }4 H0 T/ ]3 P1 w
  92.     ! D1 P0 w: E# y2 ^4 |9 d6 L
  93.     ' 提示用户
    1 _; ~. [4 b; R, N" Z9 u! H
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    * m" a+ d$ @) R1 Z: a$ p6 K
  95. End Sub
复制代码
$ q  v8 L+ N& X* J7 v
' d! @" |% c  P
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。
- A8 o1 F  |( a% Y# ^首先怎么保证AI模型的回答不会有幻觉,你保证不了。! G, z' H* `+ s; `
其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。: g" r8 n! R: X/ P; v7 E
最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。! i. b+ ~, T7 F% R. i! L- u/ ^
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂; l+ y3 J; s1 r: B
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
! B8 a5 h: M2 D! I0 d% B- `
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-6-17 11:26 , Processed in 0.064591 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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