机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5308|回复: 9
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2025-2-7 09:55:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?" D8 H7 c: T+ q" y3 w! f6 b6 \' c. V
  1. Sub AddRectangleAndArrayAndTrim()4 t& R* r4 L! T' |9 u. \2 \( V
  2.     ' 声明变量
    0 Z: v! u+ J7 |( X+ o! R9 M
  3.     Dim lineObj As Object- D5 e- y# \4 E6 ~: q3 c/ G
  4.     Dim startPoint As Variant/ Y: t7 `3 W5 b7 a
  5.     Dim endPoint As Variant
      ?6 n: E$ Z! R( z
  6.     Dim rectWidth As Double- J0 W3 C% V( P$ I
  7.     Dim rectHeight As Double1 E$ D+ b3 F+ S6 ~0 X- l
  8.     Dim rectStartPoint(0 To 2) As Double7 O6 p0 m6 J2 f2 n
  9.     Dim rectEndPoint(0 To 2) As Double
    % L; ?+ \( p0 d( L5 `6 V# j4 y
  10.     Dim rotationAngle As Double
    " q/ J! p) G$ v. ?, J
  11.     Dim rectObj As Object% s- I  ?& H$ [* s) @
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点% V1 k- Q1 K: V7 E+ q
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    ! F5 q7 u8 n$ k
  14.     Dim newRectObj As Object ' 复制的矩形对象: \* j; `2 V7 a7 ~# b, V( ?( y
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)
    0 {9 |6 e8 U/ J+ x1 J9 X0 N
  16.     Dim intersectPoint As Variant ' 交点
    / q& [& f6 A- q: s2 t) s; ?. a' m/ o1 d
  17.     Dim trimStartPoint As Variant ' 修剪后的起点
    " u2 s9 U$ m$ m
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    $ X1 Y7 x: S3 \% X" B
  19.     1 E& V# R; }* e$ M3 k) R4 M" h) V
  20.     ' 定义矩形的尺寸
    % q1 N) ~& Z& Z8 C$ L
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)3 S1 W" v, Q/ x8 y, F, h5 L9 p
  22.     rectHeight = 1  ' 矩形的高度(长边)1 f3 M1 `' ^( S( E) D$ C/ j3 p1 F  |
  23.    
    ' z& ]" o+ h) G4 Q
  24.     ' 提示用户选择一条直线
    , `/ X5 P. h& Y6 R5 M, {& f, m
  25.     On Error Resume Next/ Q7 E* |" f! j6 V, _
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "* o3 ^0 l: p: q9 z' S+ C9 K
  27.     On Error GoTo 00 A# `1 h6 y0 S3 {7 B/ y
  28.     4 ^" A4 {1 \( [* o+ ?7 M* S
  29.     ' 检查用户是否选择了直线: j: P3 w, ^1 h9 |
  30.     If lineObj Is Nothing Then
    4 B$ L6 v8 z" w' [& ]2 u: a, V* w
  31.         MsgBox "未选择直线或选择无效。"5 g0 \7 [  x( s* \3 U+ t- V
  32.         Exit Sub. Y: c7 Z$ j' O5 y5 w2 s
  33.     End If
    ( }% z- }" O6 T; ^
  34.     ; y8 p, ^$ K* d8 _
  35.     ' 获取直线的起点和终点
    4 R# ^0 t) o- t
  36.     startPoint = lineObj.StartPoint4 h# O2 C' w3 A
  37.     endPoint = lineObj.EndPoint
    - u/ Q9 Y0 W6 _/ L, b
  38.    
    ; k" v$ ~: ~  W3 ?3 I, E
  39.     ' 计算直线的中点
    * L9 q2 L3 b7 z. q! z; s1 J
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    2 t5 }* t* p; t' y) A7 j
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2! A; }$ W- \8 h2 I. H- T
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2( G2 J9 x$ X1 j
  43.     & t; t9 z  c8 M( }+ ?) F
  44.     ' 计算直线的角度(用于矩形的旋转)
    % g* v+ d! t7 C+ D
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))& ]6 _6 l5 ~7 ]4 N9 I, T
  46.     % i+ B. H- Q. h) B6 @1 E# ~7 X: N
  47.     ' 计算矩形的起点和终点/ r% m, [( N* S" }8 T6 ^
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    0 G/ U% d$ C" X: e/ [
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    ! W, O$ F% a7 U6 ~. l
  50.     rectStartPoint(2) = startPoint(2)$ O& u  G1 W7 J$ s. F5 z9 }7 K# x
  51.     ; f- U5 A7 R- i4 a
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)" {/ W2 B" A) T) Y5 W1 F
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
    # g. ^4 c% z$ e& K
  54.     rectEndPoint(2) = rectStartPoint(2)8 l% Y4 _( ]  F" x% `
  55.       `, X" H/ N, i# j7 z
  56.     ' 定义矩形的四个顶点7 D7 n) G0 U7 y# j2 ]
  57.     points(0) = rectStartPoint(0)" ]. l; ?: Z5 X- [# o
  58.     points(1) = rectStartPoint(1)
    1 R; G' X5 m) T) i2 S, a
  59.     points(2) = rectEndPoint(0)
    1 h4 B) Q$ d) H1 c' g' T/ Y; \
  60.     points(3) = rectEndPoint(1)
    7 K- V. d" H5 g' L8 t+ J% ^
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
      @! Y% q2 z* ~: u
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    1 y3 Z1 }4 a% ^: P2 q) A" Q
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))$ Y$ r6 x/ u. R9 W
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))- J2 H! y/ O: X& E) s! E, G2 }
  65.    
    5 t2 B6 g2 b) w6 j
  66.     ' 创建矩形, X, r7 B* G/ `- m; b
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)* _' U9 B' Q  e+ ^& C
  68.    
    . |( W' ]' J5 d  C) k4 W# _( M
  69.     ' 创建圆周阵列(手动复制和旋转)3 A) w. U2 E4 G3 T
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度) v9 z4 r, a- B0 E  o8 k0 N
  71.     Set newRectObj = rectObj.Copy7 N$ L/ a; G; V0 }% Q. M0 H
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    2 l' [6 n2 G. d/ u+ J
  73.    
    6 l6 z. V4 x; q2 D9 _
  74.     ' 修剪直线
    2 Z9 g* Y8 A& A2 y5 i
  75.     ' 查找直线与矩形的交点, Y  C5 f2 D; v& U
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
    % P( T' d8 @3 ]/ a9 j/ g' M
  77.     If Not IsEmpty(intersectPoint) Then
    ; P, B1 Q( g+ P. e/ O( A% `  j
  78.         ' 修剪直线的起点/ G2 Q, |4 n! z* I2 Z
  79.         trimStartPoint = intersectPoint
    6 o8 u- H- S! F& L4 }3 t
  80.         lineObj.StartPoint = trimStartPoint
    2 t. S' d0 t; n3 M% W0 `+ H
  81.     End If( ^, M$ b% _5 G8 g( U
  82.     4 d# S0 d2 b  W
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    1 v; G+ e' O0 J! a% |2 N
  84.     If Not IsEmpty(intersectPoint) Then% a( p! A! @3 r4 E& }- O: R
  85.         ' 修剪直线的终点
    4 p( y. {8 m& W
  86.         trimEndPoint = intersectPoint
    / U. |. F. e* {# u2 M
  87.         lineObj.EndPoint = trimEndPoint
    : H. S$ e  D: l9 H
  88.     End If
    * d6 H: }0 m8 P; Z3 Z* \! m2 X: i2 O
  89.     ! R1 D& |. G2 K
  90.     ' 刷新视图: Y8 r) t6 ^. n' q& n# e9 E
  91.     ThisDrawing.Regen True& F& p0 {9 h. a$ r
  92.    
    , Q& L2 H: x; D+ e9 |6 [
  93.     ' 提示用户1 `5 c5 E: j, B- w
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    5 n  g, t' f% g) T& ^- D
  95. End Sub
复制代码

. O5 V8 B. P4 c4 {. @3 w2 l' x: P: T  ]. ~1 e
回复

使用道具 举报

2#
发表于 2025-2-7 10:01:48 | 只看该作者
blender也可以。去年试过一次

点评

bl集成了py接口  发表于 2025-2-8 10:31
blender是3D软件,具体说说怎么应用吧。  发表于 2025-2-7 10:10
回复 支持 反对

使用道具 举报

3#
发表于 2025-2-7 10:34:22 | 只看该作者
这叫脱裤子放屁,没有任何可行性。! v6 t8 n- l  |
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
$ g5 A/ m$ C2 |其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。! J! O7 k  b: }. U2 X: {
最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。9 U- q! T8 H( K
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
回复 支持 反对

使用道具 举报

4#
发表于 2025-2-7 16:04:55 | 只看该作者
这个把简单的事情复杂化了
回复 支持 反对

使用道具 举报

5#
发表于 2025-2-8 09:27:49 | 只看该作者
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂2 }9 ]/ B- Z, s7 K
回复 支持 反对

使用道具 举报

6#
发表于 2025-2-8 09:28:01 | 只看该作者
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂7 u) P/ ?+ Z6 V8 [7 _* J' ]
回复 支持 反对

使用道具 举报

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

使用道具 举报

8#
发表于 3 天前 | 只看该作者
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-21 19:52 , Processed in 0.069576 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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