找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8243|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?3 x5 S; ~" C$ N7 s
  1. Sub AddRectangleAndArrayAndTrim()4 W' g4 Q; ^# h' l/ {
  2.     ' 声明变量
    5 ^% N1 D9 P, d3 \) n+ `  Q' W
  3.     Dim lineObj As Object( o5 E3 w) p5 k7 z- Q: Q3 n
  4.     Dim startPoint As Variant0 _' _/ q& E2 `
  5.     Dim endPoint As Variant
    + ]7 L5 `9 A# C: E
  6.     Dim rectWidth As Double, B: ^, m; {5 {& _  q% c
  7.     Dim rectHeight As Double
    7 s( E# l, I7 V2 Y  x9 [  E% }1 V
  8.     Dim rectStartPoint(0 To 2) As Double
    % G( l8 |# [9 X( ?! J
  9.     Dim rectEndPoint(0 To 2) As Double2 |& ?$ k: l1 C4 d! n
  10.     Dim rotationAngle As Double
      K9 a( \( [3 s
  11.     Dim rectObj As Object
    5 a5 ]* m/ c" @6 l  F; m7 N: w! Q
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
    0 I8 B7 U$ c3 e/ d
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点, k  k' J2 q( T( S
  14.     Dim newRectObj As Object ' 复制的矩形对象$ p; D6 C3 D9 s
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度)& ~: r* X" l$ Y; Z2 A6 ~
  16.     Dim intersectPoint As Variant ' 交点
    ' [7 x, R  Z) ~) Q+ p5 @8 r5 _- |
  17.     Dim trimStartPoint As Variant ' 修剪后的起点7 G+ y1 m2 B! M5 ^" z  s" B
  18.     Dim trimEndPoint As Variant ' 修剪后的终点
      ?3 U3 P/ i  {
  19.    
      L7 H# F: _$ _) C. S; E0 u, y
  20.     ' 定义矩形的尺寸! N5 t! g$ i  a6 K. F
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)& b, h& s9 c6 V: o
  22.     rectHeight = 1  ' 矩形的高度(长边)) M7 R* ?, Y) @4 }9 T; O" }
  23.     2 B& Y0 o5 j$ e8 i3 T$ i4 {
  24.     ' 提示用户选择一条直线1 O. ?( S+ @3 @3 i) x6 H. }  \
  25.     On Error Resume Next
    5 n  P) d9 T; J+ E  }
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "1 M1 L8 h+ I  h" V* |
  27.     On Error GoTo 00 [' q4 w! \9 m- e( W3 H. d
  28.    
    + y* V# _+ D' r$ D) E4 m
  29.     ' 检查用户是否选择了直线+ B" e9 @* r- K2 B, k
  30.     If lineObj Is Nothing Then
    ' t0 a" O# E9 `- Q
  31.         MsgBox "未选择直线或选择无效。"! ^: V& w* ?5 j
  32.         Exit Sub
    7 ^+ o7 C& a5 I: f8 `
  33.     End If
    6 o1 K- u' N3 s% C$ ^- j0 o
  34.     6 A" U0 B7 u& D1 X
  35.     ' 获取直线的起点和终点) _) L9 ?! @3 n
  36.     startPoint = lineObj.StartPoint
    * I: u0 A8 f! A5 h# ?
  37.     endPoint = lineObj.EndPoint; [9 @$ l% \! H2 a
  38.     9 L+ Y! {( l/ H0 d1 z% C4 n
  39.     ' 计算直线的中点
    0 _* k, j: `$ b4 Y, N
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2! s% W$ J, D+ \- g8 w, W
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 2: R9 W7 f9 D7 H4 b7 Q9 N
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2: S  \: r! o# B- v0 \) \& U
  43.     4 a# [& V" K) v: f. b( U
  44.     ' 计算直线的角度(用于矩形的旋转): |6 m' N) Z  t$ {( `. |, c
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))0 V1 }* J( d7 I: g& m
  46.     5 f1 f9 C* H# e7 m# H
  47.     ' 计算矩形的起点和终点5 t1 l' F- L8 B7 ]
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))1 y: L7 H, l+ l: }
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    % n: B  {, U) z9 N$ m3 P
  50.     rectStartPoint(2) = startPoint(2)& c4 j7 ?6 Z9 e5 w7 F
  51.    
    3 T. f% s2 k" a7 h2 B; ^& x4 ~
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)5 z3 z6 R4 C8 B3 z6 @& E: Z1 E
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)8 y$ ~- G  m* v! H; |" r1 z3 J5 L
  54.     rectEndPoint(2) = rectStartPoint(2)
    ( i/ G9 V& w! |  C
  55.     ) E( n/ v5 e$ i5 L  p  N  g
  56.     ' 定义矩形的四个顶点
    ! J. K: e2 m3 S
  57.     points(0) = rectStartPoint(0)8 F% L+ x! \4 a9 O  d) v
  58.     points(1) = rectStartPoint(1)
    . a" y5 _& o7 T: a
  59.     points(2) = rectEndPoint(0)
    - t$ F% B# @- ^( s/ Q3 S
  60.     points(3) = rectEndPoint(1)0 z+ r7 t- x* {/ o1 ~  J. U
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))# Z8 U" f( Y" d+ a$ x# |4 X/ |1 I
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    # S1 i3 _* }! L' V$ o& b8 d/ f
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    $ b+ X; f6 h7 }- R( D& W
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    : {% Q# c6 m- i( \
  65.    
    : p% C$ g( R. y, e
  66.     ' 创建矩形5 z( A' @: j0 c0 d
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    8 s: ?3 c+ J. w( j7 q9 }% s
  68.     + P8 C5 Z! i! ]; J
  69.     ' 创建圆周阵列(手动复制和旋转)/ _- b9 g' G, _& }# v% m3 Z
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
    . j8 H  ]  s9 p0 @" S) ^( N0 r
  71.     Set newRectObj = rectObj.Copy
    $ {+ r: j. s5 R
  72.     newRectObj.Rotate centerPoint, rotationAngleRad: f" V) p9 [& j0 l5 a4 [6 a
  73.     ) H! B3 {2 ~) R3 Q
  74.     ' 修剪直线0 X5 y  \9 g: [( B$ E1 {
  75.     ' 查找直线与矩形的交点
    3 {* W; f- s; G4 k0 c. F
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)2 Y% O! O% N; q" R
  77.     If Not IsEmpty(intersectPoint) Then
    : r6 V" @) B: v1 A0 Q
  78.         ' 修剪直线的起点
    / W1 V( d1 s& W  j2 n: V
  79.         trimStartPoint = intersectPoint4 t5 p2 d: p3 s* s# i3 I/ v
  80.         lineObj.StartPoint = trimStartPoint
    7 f6 [( K9 r) t# p8 V+ |
  81.     End If
    & O! R4 v7 W; M
  82.    
    . R# q2 H+ U8 s0 W
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    , z4 Z" e, J* a
  84.     If Not IsEmpty(intersectPoint) Then. x. ?$ a0 [8 \3 K6 t
  85.         ' 修剪直线的终点
    7 g. \" x, Y' X7 k8 Z
  86.         trimEndPoint = intersectPoint. r- @( u2 Z! w) `; Q0 S5 W$ @' X
  87.         lineObj.EndPoint = trimEndPoint' @* p) y' y  @' ]/ v
  88.     End If2 B  L# W- F% |9 B4 n
  89.    
    % V# X5 `; S2 s+ @* t
  90.     ' 刷新视图
    3 G" V; T! @- }* q2 o5 R  j# r5 [
  91.     ThisDrawing.Regen True$ e  h( s& T9 j7 p4 \% x
  92.    
      m; e8 s; B. U. q& G
  93.     ' 提示用户. F- r) H9 @" m  c& b7 {
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    : g' S* v; C+ z$ O  U
  95. End Sub
复制代码
5 c9 R4 z, U; x! q6 M, }: x
6 ^. u- r( D5 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 | 显示全部楼层
这叫脱裤子放屁,没有任何可行性。4 G4 [6 G0 h+ i7 s5 _* U
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
5 c4 x, G( M: }其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
, c- U9 O1 f2 S$ ?8 M最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
; w) c4 o4 X$ ]$ ~. Z9 f那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
+ m1 M( N4 f, p& M
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
( y( ]7 p( \( U% ]3 ?4 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-13 17:36 , Processed in 0.098521 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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