机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7884|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
  y, X8 J/ H  n! T$ C7 n
  1. Sub AddRectangleAndArrayAndTrim()2 y* ]% x0 {9 K" Q% G8 q* J$ ]
  2.     ' 声明变量4 O9 n% ?( X5 Q% o9 ?0 G
  3.     Dim lineObj As Object
    / Y6 k3 C+ q& N4 ?0 _
  4.     Dim startPoint As Variant
    5 J3 r, x. }1 h
  5.     Dim endPoint As Variant
    2 ]! {; ^/ u; a# k4 Z( ~
  6.     Dim rectWidth As Double
    ( t2 w9 j" ?2 D$ Q/ ?6 g0 R* Z
  7.     Dim rectHeight As Double( c: b3 f1 R7 N; n+ _
  8.     Dim rectStartPoint(0 To 2) As Double
    ) q4 T/ C: y6 ^  w7 v
  9.     Dim rectEndPoint(0 To 2) As Double
    8 l# k+ X. \, u# g  B- J
  10.     Dim rotationAngle As Double
    : u, ?+ ~9 f2 _% _) }, z9 X
  11.     Dim rectObj As Object5 u: [- A2 ^% H6 `/ K
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
    ' ~$ o8 D2 w) q# P
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    # l4 \/ ]9 {. P5 m
  14.     Dim newRectObj As Object ' 复制的矩形对象
    8 A2 J4 z, Q6 l) Q$ e4 o/ A# u
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)0 U7 d4 v* Z; h, F
  16.     Dim intersectPoint As Variant ' 交点
    8 S' n) d# a4 N9 K5 ?
  17.     Dim trimStartPoint As Variant ' 修剪后的起点
    $ I1 B% G. k/ G' p* f, G6 g
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
    . o) c7 h/ k( ^, N* @
  19.    
    ! ^) u0 _" l5 v! @
  20.     ' 定义矩形的尺寸
    # z+ t; ^5 K+ N0 W4 k# n
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)2 J8 U6 }6 }8 S) W4 Z8 A8 l& ?. e& i
  22.     rectHeight = 1  ' 矩形的高度(长边)
    6 X) w' \- m4 t4 w) i
  23.    
    ; f% o% o; |9 P  V) e& P7 U. Z/ q
  24.     ' 提示用户选择一条直线
    8 t0 d* s) ?2 A5 G* j7 x
  25.     On Error Resume Next  W$ Q' g! A1 V0 v8 U) e% V  }. z
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    5 ~/ _' \) O7 a! O! E/ u7 \
  27.     On Error GoTo 0
    8 b3 [6 R8 V9 B0 {; @/ T2 y
  28.    
    ! X7 P/ ~( t  u0 n
  29.     ' 检查用户是否选择了直线: Q1 [: d4 A+ M; n, {- `
  30.     If lineObj Is Nothing Then
    8 y5 g/ N/ e$ ^. a
  31.         MsgBox "未选择直线或选择无效。"
    6 z8 N- X2 n, V* G1 D. V7 M8 k  s1 ?
  32.         Exit Sub
    , c" p: C1 w3 Z) Y! i
  33.     End If) b7 |" {1 I8 K: N
  34.     ( I+ x$ b  O, |9 w
  35.     ' 获取直线的起点和终点! G9 I1 f# Q& A3 ?
  36.     startPoint = lineObj.StartPoint# b' b7 H% |5 s: k' [3 j! O
  37.     endPoint = lineObj.EndPoint7 K$ S4 l4 v' H% [$ ]9 M+ y
  38.     * J8 l1 H5 h' a& o- e3 A5 P$ A
  39.     ' 计算直线的中点
    ( O) D6 v$ L. p* Y
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    ! R5 g: |% |0 p+ v; C1 |
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 29 B* C! s5 P, V1 `3 r' O. e
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2) A% U0 z' K. m1 o
  43.    
    2 W7 F2 w# I6 \+ u( B5 S" e
  44.     ' 计算直线的角度(用于矩形的旋转)6 l" G2 @4 s  j4 D1 M8 o0 t
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))7 ]4 Q6 m. k& k; H
  46.     & X1 X7 |1 q6 s6 z9 _
  47.     ' 计算矩形的起点和终点* u# k* {1 l# X) B, V4 `- c
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    + s) N; ^( b7 W& M6 e
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    6 F# w) }* U0 V
  50.     rectStartPoint(2) = startPoint(2); g! ~7 }# u" w. ?
  51.     7 C& Z. v& _/ u" h3 A; @' N
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)& J9 `  V8 z0 R9 {, Z
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)- x* v  N. [$ G- _
  54.     rectEndPoint(2) = rectStartPoint(2)
    ) ]3 D# Y, v  F! H* `- }
  55.    
    : C, t" K# j; c, b- x
  56.     ' 定义矩形的四个顶点
    " W5 L+ ]+ Z7 Y' s( y
  57.     points(0) = rectStartPoint(0)
    5 z: O' r, U- ~1 |9 G
  58.     points(1) = rectStartPoint(1)
    # T1 M$ _- B! e' N) \
  59.     points(2) = rectEndPoint(0)8 l6 j- k3 E, p
  60.     points(3) = rectEndPoint(1)0 W! `+ ~+ f$ ^: F! t
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))/ G5 i/ A  X1 f( S$ ~$ j( D: L
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))" G. D& b( o- h" ?  e
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))' c/ O* |% Q- a7 ^2 J  y+ B6 V
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))- z+ L! P9 l5 f; m# I
  65.       n, m& v+ Y; k) M
  66.     ' 创建矩形' M2 N. s' S, y6 C% Q
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    / m$ x8 x, I) ^, ?- Y, d" X/ }
  68.     $ }3 A. O1 Y# H2 {2 o
  69.     ' 创建圆周阵列(手动复制和旋转)# [( {" k4 j0 Z, |, p
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度5 e) {+ \; H2 g+ t7 B3 X
  71.     Set newRectObj = rectObj.Copy
    + o# ?$ b- D5 @2 ?5 G9 z
  72.     newRectObj.Rotate centerPoint, rotationAngleRad2 V# g' e: {1 |4 b3 z) d8 L5 z
  73.     + s# g" f9 v& {7 h$ z7 `) O4 Q
  74.     ' 修剪直线
    0 [+ x' d7 e- a& H
  75.     ' 查找直线与矩形的交点
    9 v4 D1 e# P% F3 R
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)& N, t0 ]( Y# O3 ]2 \9 }! ?. ]
  77.     If Not IsEmpty(intersectPoint) Then
    0 F/ A- _2 A$ Q. s
  78.         ' 修剪直线的起点
    8 r( I8 R% L9 [, f. H$ B
  79.         trimStartPoint = intersectPoint
    / W" J/ l2 m$ g0 \4 @
  80.         lineObj.StartPoint = trimStartPoint
    6 @) R1 v" {( m/ i6 v* k& k
  81.     End If$ G8 k9 _9 M4 }) c! O# y0 A( w/ c
  82.    
    7 N/ H& P: }9 Z6 ^2 \6 u( t9 ^7 L
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    % i3 y1 L  Y/ e: V/ }
  84.     If Not IsEmpty(intersectPoint) Then4 Z* W8 e+ I2 @+ B% ?3 S
  85.         ' 修剪直线的终点7 G" v' v6 `2 U) J/ M; D
  86.         trimEndPoint = intersectPoint
    8 `* i; f3 Z0 j) C- K" O
  87.         lineObj.EndPoint = trimEndPoint$ s. h( _& _: C* W
  88.     End If! C8 x/ V( F/ J, B" x3 u7 B; U/ ~
  89.     ' D) e2 U5 P) j$ _. q
  90.     ' 刷新视图
    + n4 k) P1 ~  T9 B. f
  91.     ThisDrawing.Regen True
    $ I- g# g, i" O  C2 t
  92.     9 k; }$ S$ Y' ~1 s% {
  93.     ' 提示用户1 b7 }. F1 @  H" _2 s% B; I2 u, _
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    ! M5 ^, K7 K( |4 F+ P6 ~
  95. End Sub
复制代码

& [  [5 u) o2 o1 G* v3 m# q, z6 e- q# y, N4 R
回复

使用道具 举报

发表于 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。6 Y4 L  P- l' C. u
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
, F6 J: N# P$ ^* y  t其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
" b  K4 _- |6 e* |最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
, b: P9 o) k1 B+ V3 K那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂3 j0 [5 z- f: |' K6 S1 f
回复 支持 反对

使用道具 举报

发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂; S; v' O4 ^2 p. Q$ u
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-1 12:37 , Processed in 0.070688 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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