找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8239|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
; b! Z, A  s! h4 v8 o: U* ~9 C3 K
  1. Sub AddRectangleAndArrayAndTrim()
    1 H* m9 F, Y$ M  m8 ^
  2.     ' 声明变量+ |! j. d( }& Q7 \8 A$ B& o
  3.     Dim lineObj As Object
    " j0 B3 @  J) Z2 Z5 `
  4.     Dim startPoint As Variant
    8 r/ L6 |$ i0 k
  5.     Dim endPoint As Variant
    7 h) ~# b# a5 C  r
  6.     Dim rectWidth As Double6 m  E& ?+ O3 |
  7.     Dim rectHeight As Double& t' R9 p; J2 u0 G0 E6 ?3 Q7 r1 I4 F
  8.     Dim rectStartPoint(0 To 2) As Double& n2 F& @3 b" |0 X
  9.     Dim rectEndPoint(0 To 2) As Double" F( C1 z) {$ M1 N, U
  10.     Dim rotationAngle As Double  `' K$ G% E' e3 g% d5 V
  11.     Dim rectObj As Object
      l6 G0 L2 C1 E6 H- u. [) k
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点# n+ z8 v" q* U; F. x8 g
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    . a0 w' O, y- k) q5 O+ t
  14.     Dim newRectObj As Object ' 复制的矩形对象( b0 A/ W% @5 B+ E
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    7 M9 v6 m6 C! |% I' U+ x+ U
  16.     Dim intersectPoint As Variant ' 交点& }( O# U" Q- P* z. a  R; B% t
  17.     Dim trimStartPoint As Variant ' 修剪后的起点2 z) [* m) n. ^- b  k$ q
  18.     Dim trimEndPoint As Variant ' 修剪后的终点0 S. O3 B% L( E. k6 `9 t
  19.    
    + o* Y: p: a$ C
  20.     ' 定义矩形的尺寸: D0 n3 c9 j1 V& C0 A# r5 {
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)6 D+ A4 I9 r/ d$ k0 w
  22.     rectHeight = 1  ' 矩形的高度(长边)
    $ h4 A0 p# ^5 g4 s& a. F7 \
  23.     : i. g$ R$ P3 b" m5 B* j& L  u$ N
  24.     ' 提示用户选择一条直线. |; I3 F# F: a
  25.     On Error Resume Next
    & t& g  O& K, }- x3 F
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: ") N- _0 O. a8 B. q
  27.     On Error GoTo 0
      u5 B1 |( _0 `, b
  28.     # f9 c' m5 R: C3 ?. f- k' \
  29.     ' 检查用户是否选择了直线% p& o0 x& d0 e2 M9 O
  30.     If lineObj Is Nothing Then% Z" G, v! u  Q) w9 {
  31.         MsgBox "未选择直线或选择无效。"
    " K( E' Q0 P! F3 Y- h: {
  32.         Exit Sub
    ! w2 q. M; ]& p; e$ W
  33.     End If, `( z, q6 p; @; n
  34.    
    1 H4 Z9 b1 G  ]2 {1 b% N8 y: S# z6 \
  35.     ' 获取直线的起点和终点
    3 u  a- ?4 U5 J, [. c" i- k
  36.     startPoint = lineObj.StartPoint: Z" n6 X. U/ j
  37.     endPoint = lineObj.EndPoint7 g$ C. O3 \( F
  38.    
    - Z  W4 K* r) L, h0 Y
  39.     ' 计算直线的中点! a4 T9 x, R/ q+ a% }% D; x
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    " V3 e) v2 v+ u6 m  p2 b
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2
    ( z- h; u  `. E/ [. J
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    5 y7 Y$ \0 g- t. n' L7 }- I# h
  43.    
    ! X3 X: M4 G  R+ ^9 W  b
  44.     ' 计算直线的角度(用于矩形的旋转)8 X+ z% g4 E' ]  q
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
    # H# F  ^' h* ^8 z# ]7 ?
  46.    
    % k& [$ F) u, R. v
  47.     ' 计算矩形的起点和终点
    - I3 S$ q9 A4 e  x( z; }$ ~) Y
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    3 G# ^) r; e, B/ S
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    ; R6 U5 ]9 P# m, J# _3 g, t" M
  50.     rectStartPoint(2) = startPoint(2)7 S1 J. H" b* R5 V' l. q/ |
  51.    
    5 F% d" o1 T/ D; p3 i
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)4 Z, g* i* w. v* m2 T8 U, _5 r
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
    / ?9 b9 ^& m# n' K* t) `" w
  54.     rectEndPoint(2) = rectStartPoint(2). ^) K0 q/ @3 o% L0 m# A5 R1 E
  55.    
    9 X6 m; S0 _# ~0 c: U& y) W9 S
  56.     ' 定义矩形的四个顶点
    ! i- g1 g, o8 f3 ?. `, S/ d0 i2 r6 N
  57.     points(0) = rectStartPoint(0)2 s- x  }" u6 e# n7 O
  58.     points(1) = rectStartPoint(1)
    % U& {7 `# p. O0 B, I2 V
  59.     points(2) = rectEndPoint(0)
    % L/ R- Q. Z" M# C9 H
  60.     points(3) = rectEndPoint(1)
    & o+ z: U2 ^$ v0 x; T$ x5 L- J8 ^
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    ) ~$ y: ~+ w; [, `' [) S, K
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    ' }' L2 v& ?# r; t
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))+ Q( {3 Q0 N) x# k9 m
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))0 w! F! Q3 A  \) |( V; V1 W
  65.     + l" O- \6 ?4 U: r) R
  66.     ' 创建矩形$ N" _- c/ b! K; K: ^
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    2 x( ]3 E, H/ Q
  68.    
    # [$ i$ b  K* N: k8 y' ]: m
  69.     ' 创建圆周阵列(手动复制和旋转)
    ) @# ?5 }- a- ^3 U; u
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度7 F& B; o5 q8 Q0 d: S# o1 o7 @: ]
  71.     Set newRectObj = rectObj.Copy5 a, O7 w2 P7 s3 d
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    3 i- V) c5 |0 S6 X  {. S1 A
  73.    
    2 a" E8 ?' l& g0 o; K4 p7 Z
  74.     ' 修剪直线7 t$ B8 a; ?7 S3 K7 ]) v
  75.     ' 查找直线与矩形的交点' ~. U4 f+ d0 V
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
      [3 N4 _( X6 D; e! S
  77.     If Not IsEmpty(intersectPoint) Then7 h: j4 K! }6 s
  78.         ' 修剪直线的起点
    , Y4 U" [% V- T1 p1 R; r+ x. j, B
  79.         trimStartPoint = intersectPoint( U8 o4 g" \9 `2 O5 N3 X+ `4 A4 c
  80.         lineObj.StartPoint = trimStartPoint+ G2 ^' |7 a! o
  81.     End If
    " c# X; \8 h* V" B! K# x" I  _* c' U
  82.     8 P' e- ^7 J% Y
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone), j* i! d# R  T
  84.     If Not IsEmpty(intersectPoint) Then
    2 d5 C/ R. w5 g! w' D
  85.         ' 修剪直线的终点' w, \7 {8 S% a! u. q2 _1 ~4 a
  86.         trimEndPoint = intersectPoint" N% |8 z* v% n+ Q* U
  87.         lineObj.EndPoint = trimEndPoint
    # d, L' T2 f4 w: u+ q
  88.     End If
    % A) }- V3 D' {* R5 }( d) ?
  89.     # V2 Y$ T* x$ f9 f  @  d
  90.     ' 刷新视图
    8 @5 s* q2 ^3 `  z5 j3 F# L* ~
  91.     ThisDrawing.Regen True3 F3 `0 e' |2 R0 J2 G
  92.    
    # t& e# `/ g8 [' g
  93.     ' 提示用户
    ' J8 ]5 S2 i0 C4 W
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    " D# D& `9 Q. k
  95. End Sub
复制代码
8 \. @0 T4 L; R: l% ]+ F$ x
" ]/ S* ]# t; D2 K4 ^3 s4 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。- O: r; w2 U9 j
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
2 Y% [8 o; ~/ \' g0 ?( H' G: b, H7 v- b其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
) ~4 Q$ x4 \: H! b0 q' T0 Y最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
! q% U" H6 i" C( T4 J1 r那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
0 q- n# P5 k. s; c9 B
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
: Z! b; L, c' f7 F1 I
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-7-12 10:07 , Processed in 0.071933 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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