机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7320|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
$ o, u1 P) x1 S- d) d! X% }# F
  1. Sub AddRectangleAndArrayAndTrim()  K: N, a# u' o6 \1 s# n$ J
  2.     ' 声明变量6 M" z7 u3 R7 x# D9 g
  3.     Dim lineObj As Object
    6 m6 v" G- N, ^% a) L# e, d: b
  4.     Dim startPoint As Variant
    , C4 T. m% Z0 W0 {, ^" m' m
  5.     Dim endPoint As Variant7 c% X1 g8 ?; q( m; F1 G
  6.     Dim rectWidth As Double
    & l$ z) f+ G6 w3 ]2 |. y
  7.     Dim rectHeight As Double
    " \" U6 d1 Z6 K2 Y5 f3 |
  8.     Dim rectStartPoint(0 To 2) As Double
    1 t* `1 U9 b7 @( L) G
  9.     Dim rectEndPoint(0 To 2) As Double! U5 `, e- M. Q. f
  10.     Dim rotationAngle As Double
    . C, o% q9 v) T% H) P/ g
  11.     Dim rectObj As Object
    ' J1 v, v1 B% y/ F% r5 s) f
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点& |/ B2 ]. I$ j8 m
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点, {6 D& u. X/ X
  14.     Dim newRectObj As Object ' 复制的矩形对象
    $ `: l& \4 _3 H  m: M* M- U0 D
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    1 ^0 O5 E: Y, @$ L- Q. Z
  16.     Dim intersectPoint As Variant ' 交点* L% l* ^7 Z) o1 ]
  17.     Dim trimStartPoint As Variant ' 修剪后的起点8 E' d3 k% ?0 c0 Y; J
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    & @; R4 p4 ?3 O- O- S
  19.    
    ( g, a2 G8 Z1 U& G  M1 n; p  H0 y
  20.     ' 定义矩形的尺寸
    ( R4 D# |) W4 a/ ?5 a
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)
    5 k) ~- g, P# A; D+ s
  22.     rectHeight = 1  ' 矩形的高度(长边)* m: a1 B! e$ z# ]2 @
  23.    
    $ V0 Z# ?' o# Y
  24.     ' 提示用户选择一条直线" }0 F. i' y# R8 Q; J, l6 U
  25.     On Error Resume Next% P  U) v9 E! O) M
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    , g! e" [, v6 _5 \0 ~; A& o
  27.     On Error GoTo 0
    3 w; b3 g% p% t
  28.    
    2 D$ }7 q' c+ n
  29.     ' 检查用户是否选择了直线" @1 X* {* @6 H6 n: c8 q4 s
  30.     If lineObj Is Nothing Then1 }; e5 _- D/ U: b' ?! t/ c9 x& ~
  31.         MsgBox "未选择直线或选择无效。"
    3 I& o4 [6 w: F0 f1 ?1 V
  32.         Exit Sub+ C, l2 P* z/ {. Y  V  |+ i
  33.     End If
    7 [2 ]4 B+ n+ l7 L; }' t* _7 _
  34.    
    5 y" K& s# g2 i9 H
  35.     ' 获取直线的起点和终点
      P8 R$ ^$ W" r) u
  36.     startPoint = lineObj.StartPoint1 L) _$ O8 v& s' O& \
  37.     endPoint = lineObj.EndPoint
    , }- P/ k" m7 g/ y0 n- e: o
  38.    
    2 j- V& C* E( F7 Z8 b
  39.     ' 计算直线的中点  d9 t! J2 P% X0 j6 u
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    1 j, e( \  y4 X. h
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2
    ) |) g# z6 S* W7 ]9 r% S6 Q+ Z, p" B
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    1 Y( i! S% _4 ~# T  J
  43.     # F, [! Z4 h( i
  44.     ' 计算直线的角度(用于矩形的旋转)8 C& u/ K& A  X# O% y
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    ) l; j4 z% {- s6 s
  46.    
    4 R1 ~  u" K6 I3 t1 h# J3 t
  47.     ' 计算矩形的起点和终点
      p, ~9 L# c9 Y+ ?$ B, O5 H6 g) X
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))' ~; ^3 n1 R# m" R
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))3 K- [5 S* a" {1 N% z/ `' l, Q: n
  50.     rectStartPoint(2) = startPoint(2)
    : ?( u7 ?* n$ X3 D; X
  51.     / F# s! ?7 s* @$ x: t& P0 |
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)$ K: q4 ?, I& m3 c1 D2 P
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
    # x7 A& H, ]- ?- _4 F. l
  54.     rectEndPoint(2) = rectStartPoint(2)
    . ]* O$ ^$ _9 \5 O. l
  55.     , V' u2 t7 o; ]! g# f* h
  56.     ' 定义矩形的四个顶点
    0 K  ]( Z. M2 G+ J
  57.     points(0) = rectStartPoint(0)
    # [( S2 X% M3 q! x- B
  58.     points(1) = rectStartPoint(1)
    9 I* ~( P! Q5 P
  59.     points(2) = rectEndPoint(0). W+ {. m# Y; j  N' o: e
  60.     points(3) = rectEndPoint(1)
    ' b3 @* l5 K$ W. @% L1 _, k
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))6 T8 k0 q. u3 U
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))  Y4 I/ {: C% Q8 \/ E- T
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    + R8 F! S% u* g
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    & l6 `! J' w& r# ~. T* v6 |0 C0 |7 E
  65.    
    0 R& R# z8 i7 d# s# S
  66.     ' 创建矩形
    1 O  e/ b$ p! I1 W+ }0 B
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)1 D' m# J4 p8 t3 c
  68.    
    5 j4 w; J, W) N8 u* b
  69.     ' 创建圆周阵列(手动复制和旋转)+ y9 Y1 Y. t7 x
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
    ; \1 D) `, v4 P; V; N7 F& [% h
  71.     Set newRectObj = rectObj.Copy
    1 {1 @+ g$ T1 V; h
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    9 h6 D; s7 u  u  J: |* ~
  73.     ' `. k9 f5 x8 t
  74.     ' 修剪直线, d, ^6 ]$ z' k
  75.     ' 查找直线与矩形的交点
    4 H0 m7 P7 |5 Y1 R$ L) H; ~- B
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)8 ~* U/ E' K4 y# j8 p
  77.     If Not IsEmpty(intersectPoint) Then! }6 n( c0 {# Q
  78.         ' 修剪直线的起点4 N# g; F1 n1 Q0 g2 J  [8 D
  79.         trimStartPoint = intersectPoint
    ! s7 G2 X* M7 Z) a& J! N
  80.         lineObj.StartPoint = trimStartPoint
    2 Z) t7 g4 A+ u
  81.     End If& C4 ^2 P4 q- e* a
  82.    
    0 D4 c+ p9 b1 t
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)0 O) e- n7 N! ~8 i
  84.     If Not IsEmpty(intersectPoint) Then
    5 I. e1 L  }' i6 I; p1 d& H
  85.         ' 修剪直线的终点
    ' v4 u/ |) s3 e; U8 B# l
  86.         trimEndPoint = intersectPoint9 F0 r" a% @) ^0 C$ r- u$ q8 Z
  87.         lineObj.EndPoint = trimEndPoint
    ' v3 b1 R5 j7 ~, x3 D' J3 f
  88.     End If* B- U. e2 ^8 }- a4 e+ M
  89.    
    * e5 c5 a& v4 j& M3 j) U
  90.     ' 刷新视图, i- G  L* z1 p' i
  91.     ThisDrawing.Regen True8 F8 ]3 d+ F. G+ Y: s) f1 b1 |5 D
  92.     $ }0 f" Q& o+ g1 x/ h3 x
  93.     ' 提示用户
    2 ]. ?- W/ t: o: |3 L3 z
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    ' _% C3 i, f" R- d
  95. End Sub
复制代码
- s1 n" w3 b, W
0 T$ @. L1 ^( D* q+ m% |% [" M1 `
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。
, @7 R8 l7 E$ Y! l1 o; U/ D首先怎么保证AI模型的回答不会有幻觉,你保证不了。
1 a5 X$ s' M2 a3 j3 b, ?6 H其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。# _2 T4 K; D! j' {' |
最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。" b  b, [, [* L8 w& Q6 l
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
回复 支持 反对

使用道具 举报

发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
回复 支持 反对

使用道具 举报

发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂5 D7 Z3 I. @/ S9 A; H5 G
回复 支持 反对

使用道具 举报

发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
0 K* r3 f3 j  X/ _) [+ ?$ Z
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 01:24 , Processed in 0.060204 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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