找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8282|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
; D& q  J% {$ D% d  q/ B2 S
  1. Sub AddRectangleAndArrayAndTrim()% Y* @: p% L5 I2 G% E
  2.     ' 声明变量
    5 M, R; I7 `, g7 {3 Q8 D9 j" h
  3.     Dim lineObj As Object0 _/ s" r. `! m' ~2 Q* M6 ]8 v
  4.     Dim startPoint As Variant
    , u; ?6 f* e$ i; C8 Y
  5.     Dim endPoint As Variant1 {  j; q6 \  X  C9 }1 p! j
  6.     Dim rectWidth As Double
    $ j4 I, I, k6 B" P
  7.     Dim rectHeight As Double
    " B9 w/ y6 o+ z6 X9 |- V, O
  8.     Dim rectStartPoint(0 To 2) As Double
    + p  ^0 f- A8 n
  9.     Dim rectEndPoint(0 To 2) As Double
      V2 |$ m: Q0 \6 Y; L
  10.     Dim rotationAngle As Double
    4 j* n+ Q6 G: d: I6 {# K
  11.     Dim rectObj As Object% M' H6 ?: i$ H3 `2 g
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点8 K! B8 w1 l  o
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点. ]: u+ c& _; `- |& n4 k: P' X% p7 }
  14.     Dim newRectObj As Object ' 复制的矩形对象
    + X+ n/ Y- Q/ F
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    . u' t( s" o& f3 \8 s5 O
  16.     Dim intersectPoint As Variant ' 交点# ^- h) Y% b, B4 K
  17.     Dim trimStartPoint As Variant ' 修剪后的起点8 W& s# u  e: X" @
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    - x. J& ~6 d4 x: v2 B8 T: @
  19.     8 H4 v% ]; h0 n  i! Q
  20.     ' 定义矩形的尺寸: C+ ~% K9 U0 e
  21.     rectWidth = 0.1 ' 矩形的宽度(短边): {, n- M+ a' F# J! {( o0 u
  22.     rectHeight = 1  ' 矩形的高度(长边)
    : U% m! Q1 \4 k  N% Q5 c
  23.    
    : G8 H5 m: s8 |; ?7 t+ z
  24.     ' 提示用户选择一条直线
    6 w( ~& H( _. h# S: |2 P/ h+ G/ ?
  25.     On Error Resume Next
    + U# @2 u) h8 o7 n/ T" C
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    / Z7 K" _, {& f5 J7 i, }
  27.     On Error GoTo 0
      a9 i7 q- c1 i/ a" u( w; u
  28.    
    % X: a2 G7 z1 j
  29.     ' 检查用户是否选择了直线( D3 U3 `; _+ N  r* d
  30.     If lineObj Is Nothing Then
    . v: t8 c' Q7 R3 K. C' e& O
  31.         MsgBox "未选择直线或选择无效。"6 w( P; t) t- Z# Q+ O
  32.         Exit Sub
    1 n4 }7 w3 p5 ~+ Q
  33.     End If, X* {3 H- n0 c$ [& M+ r
  34.    
    " E( \3 B/ \8 a& b
  35.     ' 获取直线的起点和终点
    + S6 j2 t3 C: @: Q# {" \/ V
  36.     startPoint = lineObj.StartPoint! w6 ~. f, W4 s  `" y
  37.     endPoint = lineObj.EndPoint( f0 u, @4 y- n
  38.    
    / Q0 r) z: Q' b/ s' X
  39.     ' 计算直线的中点: w/ b" ?8 ?! E$ ]* ?4 x2 c
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    1 ?5 J; ]/ G" Y% \6 |! I' q0 ~0 U
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2
    ) r3 [( i" h6 o6 N; }
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    2 F1 [- g  H: f! K" e! A
  43.     , T2 [' f6 L. l* f1 `+ o
  44.     ' 计算直线的角度(用于矩形的旋转)! p, p6 N& Z/ [) p  W& X7 l
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    + a& E5 X) C, t# H
  46.    
    3 a1 Q, V* f0 b" N
  47.     ' 计算矩形的起点和终点# x# o4 A2 E, }7 \! F6 {, t0 b, \) `
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    - e4 T: j+ w% L* }7 X) ?
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))6 i% m- F+ G2 W
  50.     rectStartPoint(2) = startPoint(2); n9 d1 J& W2 [& D9 `
  51.     ! |9 v6 r" J! o, |
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
      y3 V- A9 D4 j( M8 y
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)3 {5 h8 G0 k# K( g
  54.     rectEndPoint(2) = rectStartPoint(2)
    + v; g0 e; K% C2 J6 @
  55.     7 O9 ]; G! w, I3 Z
  56.     ' 定义矩形的四个顶点; }& C* I, u1 g8 w
  57.     points(0) = rectStartPoint(0)- D2 T+ z  x. a0 ]% g! p$ \
  58.     points(1) = rectStartPoint(1)) U$ q$ V) `- z$ T: |" d" X
  59.     points(2) = rectEndPoint(0)5 X- H$ Y4 L% ~7 @9 B/ u
  60.     points(3) = rectEndPoint(1)' h$ \/ ~$ W( P/ G) I
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))5 O+ V5 D& }4 P- V7 d
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))) P& _2 C2 v/ G/ Y, Z' V
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    . ~# |' z2 Z4 }# b) i7 `; v& e- n
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    & o1 g. s; `3 P5 ^+ Z5 l
  65.     . m+ A+ G# B. C/ a9 b. o; J
  66.     ' 创建矩形( {0 T- \! ^9 ~5 A5 p( @6 ?9 D
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)" f  @! ?* }& c" d7 I
  68.    
    ' Q) |% W% a2 p2 u+ T7 J3 E
  69.     ' 创建圆周阵列(手动复制和旋转)
    # o+ ~5 P0 ]* ?) ]4 k* d4 g
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度+ T' J$ }1 B& ?: D# Z
  71.     Set newRectObj = rectObj.Copy4 K  z% D6 }" n9 e
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    * v( Y0 a9 Y3 P
  73.       W( h! ^+ q- G2 M5 t& [
  74.     ' 修剪直线/ h4 F" V  {9 c
  75.     ' 查找直线与矩形的交点
    : H5 _, y) U, B  p  N
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
    ' r( ~1 ]. m' j. z9 C0 z
  77.     If Not IsEmpty(intersectPoint) Then
    8 [1 i( h4 D0 t; f( @
  78.         ' 修剪直线的起点
    ! ?: A7 l; N  v% W% w3 c  K" A
  79.         trimStartPoint = intersectPoint: y) _: f) ?7 c% r! b1 q, G
  80.         lineObj.StartPoint = trimStartPoint1 v: W$ c, M( _" p; _1 D- T2 s
  81.     End If/ t. |" K) j. b- W  u: V
  82.     2 b% `/ C% X3 d8 i6 b; B
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
      k% I4 @' S5 M' Z4 G
  84.     If Not IsEmpty(intersectPoint) Then2 y* p( g# c/ E9 s- H
  85.         ' 修剪直线的终点
      S8 l4 V% R* i
  86.         trimEndPoint = intersectPoint
    : o9 ]5 |2 Y3 {! E4 k
  87.         lineObj.EndPoint = trimEndPoint
    $ `3 u8 \$ }1 |: V5 l8 \7 w
  88.     End If
    # o/ k" ]' ~3 w3 c
  89.     ( N& H* P9 ]! {# Q/ t$ y. D& O
  90.     ' 刷新视图
    " F! G+ {' g; B5 X3 k/ _. n! Y
  91.     ThisDrawing.Regen True, _/ D2 ?- z* C6 n/ P' o9 R
  92.    
    8 k3 t* ]9 |5 u  |. _3 U; s9 m" u5 x
  93.     ' 提示用户
    % P# i' a( }! M6 p
  94.     MsgBox "矩形、阵列和修剪操作已完成!"3 X, H7 @6 v4 U& s0 o0 `
  95. End Sub
复制代码

0 W9 w$ H0 _1 C" m9 q" ?- a$ X) h. Z: q, L8 Q/ ~6 k* R# O* A6 {
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 18:04 , Processed in 0.197618 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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