机械社区
标题:
还有哪些例子可以用DEEPSEEK帮助CAD绘图的?
[打印本页]
作者:
laotoule8
时间:
2025-2-7 09:55
标题:
还有哪些例子可以用DEEPSEEK帮助CAD绘图的?
用了deepseek写的VBA代码用在CAD,挺好用的。有没有其他的方便CAD使用的deepseek的例子推荐一下?
# X r6 N# K% i. @+ k- A' j
Sub AddRectangleAndArrayAndTrim()
% ~; ], i+ T7 L$ J9 J7 x0 S% D
' 声明变量
) V" u0 K" d+ X p1 H1 ~- B4 d
Dim lineObj As Object
' A( @& A3 T7 Z& g' q" L8 P
Dim startPoint As Variant
% c! p* S7 f- [8 @6 r/ m* ]
Dim endPoint As Variant
3 r4 M; n0 u9 ~( T0 F6 k7 ^ U
Dim rectWidth As Double
) t# [' M2 Z q
Dim rectHeight As Double
: `" {' @% n& k7 a' q
Dim rectStartPoint(0 To 2) As Double
$ H! ~% E# f7 o
Dim rectEndPoint(0 To 2) As Double
1 H$ p: @/ b& I
Dim rotationAngle As Double
7 o. X! U B! ~+ T1 _
Dim rectObj As Object
& @0 n$ I$ K1 [5 k) v
Dim points(0 To 7) As Double ' 用于存储矩形的四个顶点
8 g7 E; h4 Q5 b2 h$ u7 F# p
Dim centerPoint(0 To 2) As Double ' 直线的中点
6 H. y/ e" }% c+ u+ q( [# U
Dim newRectObj As Object ' 复制的矩形对象
# Q0 O" f. s) p* Q* j( P
Dim rotationAngleRad As Double ' 旋转角度(弧度)
3 K: a' z. n, P% j& P$ D) G2 I
Dim intersectPoint As Variant ' 交点
: @ u% y0 K8 a$ f p, o
Dim trimStartPoint As Variant ' 修剪后的起点
" ]7 a4 ?; i1 K( @+ m |1 K
Dim trimEndPoint As Variant ' 修剪后的终点
$ k4 l( T( {. f
, w0 ~. W6 [$ G5 T
' 定义矩形的尺寸
7 X0 P( Y1 r( V% m" T
rectWidth = 0.1 ' 矩形的宽度(短边)
`) f/ R4 n5 t- _
rectHeight = 1 ' 矩形的高度(长边)
" @% m% T! C; _7 J8 S4 V7 e
+ m+ L/ J# Z3 \* ~5 }% ]$ r l l
' 提示用户选择一条直线
5 Y7 k8 v7 C$ g* p/ f0 X5 Q
On Error Resume Next
( O+ L+ v A9 x% P9 {
ThisDrawing.Utility.GetEntity lineObj, startPoint, "请选择一条直线: "
) A) t+ @ h$ M) S s7 y
On Error GoTo 0
# P/ q* w6 P/ u
7 d( _7 i) E6 H9 T; ^8 d) g
' 检查用户是否选择了直线
" c: K7 K6 [* }
If lineObj Is Nothing Then
: h4 x& b+ l `- B
MsgBox "未选择直线或选择无效。"
: s S8 t7 i: R$ w$ ~
Exit Sub
- h4 l2 @2 ~0 R
End If
8 W) G: |$ [0 z8 d
b8 z( [: l. s" q+ y" g& T
' 获取直线的起点和终点
! c K& m; [2 O: v, K) H! H
startPoint = lineObj.StartPoint
! W) I* h$ ]) r- `( p3 P
endPoint = lineObj.EndPoint
! w) U- D* r7 z* A
$ }+ ^/ Z1 l( k0 d: K3 T* f' H
' 计算直线的中点
: \, q1 v' Q: J1 X
centerPoint(0) = (startPoint(0) + endPoint(0)) / 2
9 {; z1 n* }2 o1 i/ O
centerPoint(1) = (startPoint(1) + endPoint(1)) / 2
% k7 e9 y; p0 R8 c" ^7 @' Z
centerPoint(2) = (startPoint(2) + endPoint(2)) / 2
5 c6 d" @* G: } t# A2 B* d
: {4 s6 Y4 I" |. c- P5 i+ c# V( a
' 计算直线的角度(用于矩形的旋转)
& R( x) n! J4 r: X
rotationAngle = Atn((endPoint(1) - startPoint(1)) / (endPoint(0) - startPoint(0)))
/ D& F: M. E( S$ Y ~
/ S+ B- Y) S, }9 I; f; X! O
' 计算矩形的起点和终点
4 F4 f, a7 e* Y! e3 r
rectStartPoint(0) = startPoint(0) - (rectWidth / 2) * Cos(rotationAngle + (3.14159 / 2))
; W, ]1 t% I" l2 r7 |' x7 M8 W6 ?
rectStartPoint(1) = startPoint(1) - (rectWidth / 2) * Sin(rotationAngle + (3.14159 / 2))
3 s- L" U: z1 E/ r" }3 S0 j# G) |
rectStartPoint(2) = startPoint(2)
! s# g4 p% Y X8 `* m7 {& L- B
^2 R: i; L) [* G
rectEndPoint(0) = rectStartPoint(0) + rectHeight * Cos(rotationAngle)
: D3 ` ?6 o; L7 H. w7 {3 W" K
rectEndPoint(1) = rectStartPoint(1) + rectHeight * Sin(rotationAngle)
& K" E3 Q) C8 {' u( \% k
rectEndPoint(2) = rectStartPoint(2)
1 ~) N+ A Y3 a! u% p2 B
, [! p0 c" j" k; |( t
' 定义矩形的四个顶点
/ f3 I/ A R P* ]1 [. i
points(0) = rectStartPoint(0)
8 V; ~" ^% d: a' N6 w
points(1) = rectStartPoint(1)
: q5 c* s* X5 C
points(2) = rectEndPoint(0)
4 k9 M9 C8 g2 v- d M! h
points(3) = rectEndPoint(1)
( F/ t. \; K) a4 i J- F
points(4) = rectEndPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
. P6 @& ^- C0 [ p9 Y
points(5) = rectEndPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
+ f& j2 c+ B; K: I* h
points(6) = rectStartPoint(0) + rectWidth * Cos(rotationAngle + (3.14159 / 2))
5 m' U) Y* T1 s1 h3 f% T
points(7) = rectStartPoint(1) + rectWidth * Sin(rotationAngle + (3.14159 / 2))
2 m& K- B! P% X6 l+ L0 W- `/ y
7 s* n+ e$ e# j0 N
' 创建矩形
2 J+ ^5 y. d" N) ?; V. r4 @
Set rectObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
4 W/ o8 T& I3 W8 E8 n
1 S I" P: p& ~/ w
' 创建圆周阵列(手动复制和旋转)
: }$ R+ Y# R* v# b
rotationAngleRad = 180 * (3.14159 / 180) ' 将角度转换为弧度
b+ w( x! T+ T7 n
Set newRectObj = rectObj.Copy
/ R& Z9 G* ^" M3 G1 F
newRectObj.Rotate centerPoint, rotationAngleRad
1 Y" R* @! c( p( R8 x/ P
2 s0 X0 t9 n; k. t$ F
' 修剪直线
5 B! p+ a) S9 K( }% G
' 查找直线与矩形的交点
* u8 N }, _5 c. _) i
intersectPoint = lineObj.IntersectWith(rectObj, acExtendNone)
z) Z1 k c; w
If Not IsEmpty(intersectPoint) Then
' b2 {( |, |+ G; D" K
' 修剪直线的起点
9 o W. Y, o. t7 `: C# z
trimStartPoint = intersectPoint
% |. Q, k, h& b1 a! b
lineObj.StartPoint = trimStartPoint
' C4 Y5 V5 r( r& I2 m
End If
( n' A; P7 H* }
! S' W7 r1 o# Z0 Z3 g( k
intersectPoint = lineObj.IntersectWith(newRectObj, acExtendNone)
# @6 @% E7 N8 @- a2 W% E
If Not IsEmpty(intersectPoint) Then
, j0 @1 x% h9 ?( S. b
' 修剪直线的终点
1 i; y/ f8 _( s+ b$ V
trimEndPoint = intersectPoint
5 t! A! Z2 y- E4 W& j3 [
lineObj.EndPoint = trimEndPoint
5 d8 E L% p* |; d+ z8 k' m
End If
! O' w" ~* v# c
7 ~9 ?& C4 H: R. v7 E# O" O1 ~
' 刷新视图
/ V) y+ j" @' C6 h! p6 n* H
ThisDrawing.Regen True
# f5 l5 q2 j1 f- H6 |. \
* e: M' d0 v0 _8 l
' 提示用户
8 Y+ A3 m5 I4 y6 Y4 k; g
MsgBox "矩形、阵列和修剪操作已完成!"
8 m! t2 t6 T Z8 K6 z
End Sub
复制代码
2 @% ]/ n& k, a& ~
7 y, a9 m! J# P7 r
作者:
564156415gdr
时间:
2025-2-7 10:01
blender也可以。去年试过一次
作者:
学者11
时间:
2025-2-7 10:34
这叫脱裤子放屁,没有任何可行性。
" w( J0 j u% b" b/ F* i( w
首先怎么保证AI模型的回答不会有幻觉,你保证不了。
+ Y# c, f# S- z* d0 s% [4 l4 J+ @
其次怎么保证工程师能识别出AI模型的回答有幻觉,更保证不了,因为多数机械工程师不懂代码。
: {' Y+ Y" [# \0 j6 G0 C
最关键的是,AI模型根本不能直接控制CAD,还需要人手工把代码复制粘贴,CAD才会画图。
' l0 F+ ?% N# h" y: C, w
那请问为何不能直接让机械工程师直接画图,你既不能提高效率,又不能节省人工,这么骚操作的意义何在。
作者:
kayex
时间:
2025-2-7 16:04
这个把简单的事情复杂化了
作者:
寰宇无人
时间:
2025-2-8 09:27
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
& a6 z; W/ ?; k
作者:
寰宇无人
时间:
2025-2-8 09:28
以前用在SW二次开发上也行,主体代码能用,但一些自定义需求,以及配置啥的,自己要懂
# s3 W) g7 d. j) D A# O+ T, n- v
作者:
寰宇无人
时间:
2025-2-8 09:29
想让他直接出图,标注尺寸,公差,工艺这些,还得大量模型喂他,不过未来的智能化发展,谁能说的准呢
作者:
zhl6200
时间:
2025-2-18 12:19
我直接给定齿轮参数,让deepseek画齿轮零件图,它明确回答我,他没有此功能,只给出了画图思路,也许以后会实现。
欢迎光临 机械社区 (http://www.cmiw.cn/)
Powered by Discuz! X3.5