找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8372|回复: 9

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

[复制链接]
发表于 2025-2-7 09:55:16 | 显示全部楼层 |阅读模式
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?" {7 t( x# ?+ i/ A, M* {3 t$ W9 o
  1. Sub AddRectangleAndArrayAndTrim()
    ; z8 N! |, \) N% g( ^/ u1 V" k
  2.     ' 声明变量
    - L; w2 Q# P  F5 L9 g
  3.     Dim lineObj As Object
    2 R8 C) L2 E# @* k- l
  4.     Dim startPoint As Variant6 j$ g# d. l# f3 S( G2 |) m7 W
  5.     Dim endPoint As Variant
    - C; S9 w- b' Q4 X4 p+ L6 Z6 k
  6.     Dim rectWidth As Double0 E( S9 T& q6 V. _0 q9 O" m
  7.     Dim rectHeight As Double
    / l+ I% \5 Z. V: y! V/ Y
  8.     Dim rectStartPoint(0 To 2) As Double
    1 b2 z" V+ k" x6 x* T- d
  9.     Dim rectEndPoint(0 To 2) As Double
    / C  c2 M+ t! v
  10.     Dim rotationAngle As Double- T9 _4 J% J' d
  11.     Dim rectObj As Object: G) k$ _  f6 R
  12.     Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点# k7 u8 e' R; p7 H
  13.     Dim centerPoint(0 To 2) As Double ' 直线的中点
    " T# d& k2 I8 \9 Y( ]
  14.     Dim newRectObj As Object ' 复制的矩形对象2 X+ L  j3 t+ c. `3 k3 \5 k& o
  15.     Dim rotationAngleRad As Double ' 旋转角度(弧度). h4 t' z6 ^5 j
  16.     Dim intersectPoint As Variant ' 交点
    $ M! ?5 K6 z1 g: q% Z+ S
  17.     Dim trimStartPoint As Variant ' 修剪后的起点
    , P; O  d, z, c# A* F
  18.     Dim trimEndPoint As Variant ' 修剪后的终点" i6 b6 ^+ u% @4 i- M6 g' v
  19.    
    2 [9 r, T* J5 D8 C6 k
  20.     ' 定义矩形的尺寸" H% }4 M- O$ g3 h# {, n
  21.     rectWidth = 0.1 ' 矩形的宽度(短边)4 q$ B1 G7 T7 s' |
  22.     rectHeight = 1  ' 矩形的高度(长边)$ k, I3 B! ~4 h* r
  23.    
    9 f$ o' T6 [. q( ~! Y
  24.     ' 提示用户选择一条直线9 _$ R7 m, s% [# `
  25.     On Error Resume Next
    2 b" F2 v# G! ^  z  @
  26.     ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
    * \% {9 n2 J, L7 e# b! y2 T
  27.     On Error GoTo 0
    0 j6 D7 ]  V/ Y8 a: p3 ^
  28.    
    # d6 p2 ~  o7 U) t2 [
  29.     ' 检查用户是否选择了直线8 J- a- H" V. _# }
  30.     If lineObj Is Nothing Then
    ) v6 l; O* ?8 O$ ^  o1 h! K! h
  31.         MsgBox "未选择直线或选择无效。"1 O# |8 C* {+ ]5 G2 j0 N
  32.         Exit Sub
    . k, x1 j. h& {. V
  33.     End If
    ' f- H* x! a# j; A! _
  34.    
    + q' c2 \7 x  H: d; B* [$ }# v
  35.     ' 获取直线的起点和终点
    + C+ i) z" m, J" o
  36.     startPoint = lineObj.StartPoint  o! C2 n  h( a5 k( X1 K4 z
  37.     endPoint = lineObj.EndPoint) Z% e. ?8 w5 Q* ~' W
  38.    
    9 D1 h( s8 y+ n$ o8 R( |  `
  39.     ' 计算直线的中点
    # ?1 T: B2 M* X5 t% `
  40.     centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
    3 n% \1 B- u! s- ]6 v
  41.     centerPoint(1) = (startPoint(1) + endPoint(1)) / 25 C- z* b0 P" g3 Z+ ~
  42.     centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
    - {, V1 d7 d& \% W% X' n
  43.    
    # B, k1 ?/ H, w
  44.     ' 计算直线的角度(用于矩形的旋转)
    - i3 J+ b2 V1 `& ~, V3 w5 K& b& \
  45.     rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))* r' C7 u# O, g+ S2 b  ~1 S
  46.    
    0 ]. \+ d3 I! L# \6 |: `" B
  47.     ' 计算矩形的起点和终点
    ) x- T* i" W% q" A, W
  48.     rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
    / r& h- W- o, d/ e+ E
  49.     rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
    6 n% [, P' E, v" e+ F2 J
  50.     rectStartPoint(2) = startPoint(2)
    5 f# l  q- V0 }1 \0 ^
  51.     : c; k8 E% S$ ~. n) p2 Q+ ^
  52.     rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)4 E! ^5 ?- T  u, |" I
  53.     rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)( G& }) D9 z) d4 W6 t
  54.     rectEndPoint(2) = rectStartPoint(2)
      |' Z7 }( I" m
  55.     , E: e' e( t' _/ p9 {4 \% n5 [! K
  56.     ' 定义矩形的四个顶点! G9 F; v+ n7 {6 H
  57.     points(0) = rectStartPoint(0)6 I. c( e$ {* B& I0 ~' c( J0 w
  58.     points(1) = rectStartPoint(1)* Q1 O+ _$ N0 Z+ D3 p" l( L1 L% b
  59.     points(2) = rectEndPoint(0)
    $ e3 l5 ^. Q6 I
  60.     points(3) = rectEndPoint(1)
    7 T3 x0 e# H  \  u: E/ r
  61.     points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    % V/ ~/ T) j- k$ A" W
  62.     points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    5 I. o/ ?4 t0 i
  63.     points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
    7 l' c" [% u- ]6 T
  64.     points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
    % I, @4 x5 n. V$ K' S
  65.     6 B) b! l; V3 K6 s
  66.     ' 创建矩形
    / u7 g9 K% z7 w3 [1 {& P4 v
  67.     Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points), ?; D5 }# @% U3 q7 u. x8 c
  68.    
    ( p2 m5 D; C+ {0 o
  69.     ' 创建圆周阵列(手动复制和旋转)+ p' `* N1 a* Q% b2 M
  70.     rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度) Z" t" ?* A" ~# l/ ~* t& h
  71.     Set newRectObj = rectObj.Copy/ F- n; v* n7 }5 l# X! W$ y; h
  72.     newRectObj.Rotate centerPoint, rotationAngleRad
    ) N$ J) `8 D' S3 w
  73.     # I* j5 Q/ f; @% a( t7 j( w& G( I
  74.     ' 修剪直线
    8 O. v  ^# ^& f+ i9 d
  75.     ' 查找直线与矩形的交点: ~; y; V; f7 C  E
  76.     intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)8 _! B9 Y, [% o2 P, ^
  77.     If Not IsEmpty(intersectPoint) Then
    : {. I2 w. K, Q2 K& d. y: d$ f8 n5 o
  78.         ' 修剪直线的起点
    , ?) n! Z3 j) }' H" v9 u0 d  M
  79.         trimStartPoint = intersectPoint2 x' u- J. c* C/ O. c
  80.         lineObj.StartPoint = trimStartPoint
    9 e6 t& r9 v( A0 N- V
  81.     End If, ^) N) Q" @; m: r$ _' A! `
  82.    
    9 t1 h% R, L3 ^8 m2 _7 j& Z  G
  83.     intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
    . v1 K! ~  V7 f  r/ @! ^; E
  84.     If Not IsEmpty(intersectPoint) Then# u. M3 p2 |- D' O9 j6 o, l6 n
  85.         ' 修剪直线的终点  ]! \* }4 Y+ u4 t8 v
  86.         trimEndPoint = intersectPoint. \7 ?2 K8 [8 e, L2 V
  87.         lineObj.EndPoint = trimEndPoint2 V) R* I( M" e1 R# U) w" X. o
  88.     End If3 W6 C- T/ Q" [
  89.     ; d9 K. A2 s" f# R% M, y# l7 ]. O
  90.     ' 刷新视图1 k8 l9 ?6 [( g( |9 \9 t2 [
  91.     ThisDrawing.Regen True2 @2 |% e8 p- d+ V
  92.     9 H+ _2 w' f: B6 L% }3 `
  93.     ' 提示用户
    9 W$ l4 \. |, H+ r
  94.     MsgBox "矩形、阵列和修剪操作已完成!"
    0 F1 R& t% M! B' ^) a4 d( D, f
  95. End Sub
复制代码
; @, y. _$ t* M7 O5 l$ a  ]
  d3 Y0 L. I. ?; s( C' J9 S- p4 d
回复

使用道具 举报

发表于 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 z  f1 K2 v7 i* v$ M
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
3 {( z4 g& \" R: k9 U其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
4 V4 ]/ h7 p) D, P" R7 X最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。% w  r9 }. [8 c) R
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
发表于 2025-2-7 16:04:55 | 显示全部楼层
这个把简单的事情复杂化了
发表于 2025-2-8 09:27:49 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
' U* c. f$ `7 [3 m7 f
发表于 2025-2-8 09:28:01 | 显示全部楼层
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂' w, d! S& W: S( u4 O8 I& T2 V
发表于 2025-2-8 09:29:43 | 显示全部楼层
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
发表于 2025-2-18 12:19:00 | 显示全部楼层
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-19 05:40 , Processed in 0.061753 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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