怎样在cad中画出xx实体的外轮廓展开图

怎样在cad中画出xx实体的外轮廓展开图,第1张

在VBA程序中,调用Documents集合的Add(Entity)方法,根据给定参数生成相应实体,然后将实体写入AtuoCAD系统的图形数据库。用户可以使用参数方法创建三维实体,若给定长度(Length)、宽度(Width)、高度(Height)或者中心(Center)、半径(Radius)等参数,即可创建长方体(Box)、圆柱体(Cylinder)、圆锥体(Cone)、圆环(Torus)、球体(Sphere)等基本实体,分别调用Acad3DSolid类的方法AddBox、AddCone、AddCylinder、AddTorus和AddSphere来生成。也可以在二维面域(Region)的基础上用拉伸(Extrude)或旋转(Revolved)的方法生成三维实体,分别调用AddExtrudeSolid,AddRevolved -Solid方法生成三维实体。还可以在已有的实体基础上通过布尔运算生成新的三维实体。

42 圆柱与圆柱相贯实体的生成

打开AtuoCAD的VBA程序“宏”或者按“Alt+F8”创建个新的“宏”程序,在用户窗体中绘出相应的控点,再在各个控点下设定相应的程序,用Add- Cylinder的方法生成两个圆柱实体,再用Rotate3D的方法旋转其中一个圆柱实体,最后用布尔运算让两个实体相贯。流程图如41所示。

图41 圆柱与圆柱相贯实体造型流程图

部分程序如下:

Private Sub CommandButton1_Click()

ThisDrawingApplicationDocumentsAdd

Dim pi As Double

Dim cylin1_r, cylin1_h As Double

Dim cylin2_r, cylin2_h As Double

Dim cylin1_obj As Acad3DSolid

Dim cylin2_obj As Acad3DSolid

Dim cylin1_cen(0 To 2) As Double

Dim cylin2_cen(0 To 2) As Double

Dim dist, cen_hi, theta As Double

pi = 4 Atn(1)

cylin1_r = Val(TextBox1Text)

cylin1_h = Val(TextBox2Text)

cylin2_r = Val(TextBox3Text)

cylin2_h = Val(TextBox4Text)

dist = Val(TextBox5Text)

cen_hi = Val(TextBox6Text)

theta = Val(TextBox7Text) pi / 180

'绘圆柱1

cylin1_cen(0) = 0

cylin1_cen(1) = 0

cylin1_cen(2) = cylin1_h / 2

Set cylin1_obj = ThisDrawingModelSpaceAddCylinder(cylin1_cen, cylin1_r, cylin1_h)

'绘圆柱2

cylin2_cen(0) = dist

cylin2_cen(1) = 0

cylin2_cen(2) = cen_hi

Set cylin2_obj = ThisDrawingModelSpaceAddCylinder(cylin2_cen, cylin2_r, cylin2_h)

Dim ax_p1(0 To 2) As Double

Dim ax_p2(0 To 2) As Double

ax_p1(0) = 1: ax_p1(1) = 0: ax_p1(2) = cen_hi

ax_p2(0) = 0: ax_p2(1) = 0: ax_p2(2) = cen_hi

'旋转圆柱2

cylin2_objRotate3D ax_p1, ax_p2, pi / 2 - theta

'圆柱1与圆柱2的布尔运算

cylin1_objBoolean acUnion, cylin2_obj

End Sub

用户界面如图41所示,生成的相贯实体如图42所示。

图42 绘制相贯实体及其展开图的用户界面

(a) 垂直交错 (b) 一般交错

图43 在AutoCAD环境下生成的相贯实体

5 圆柱与圆柱相贯线展开图的生成

在实际生产中,圆柱体与圆柱体相贯展开图可运用在管道间的连接焊点的确定,从而大量节约了时间与材料,实际运用非常广泛。在展开图中绘出众多相贯点从而确定展开图相贯线的轮廓。在图51中的P点是相贯线上的某一点,P的三维坐标是(x、y、z),通过已知条件求出P点坐标,过程如下:

图51 两圆柱相贯实体三视图

竖直圆柱 ①

水平圆柱 ②

改为参数方程形式 ③

将③中的 代入①中

如果

如果

则无解,表示此时不存在相贯线,两柱面不相交

图52 展开圆柱相贯线的计算模型

已知

如图52,相贯线展开图上某点P的坐标:

程序如下:

Private Sub CommandButton2_Click()

Dim pi As Double

Dim cylin1_r, cylin1_h As Double

Dim cylin2_r, cylin2_h As Double

Dim line_obj As AcadLine

Dim point_obj As AcadPoint

Dim dist, cen_hi, theta As Double

Dim pnt1(0 To 2) As Double

Dim pnt2(0 To 2) As Double

Dim pnt(0 To 2) As Double

pi = 4 Atn(1)

cylin1_r = Val(TextBox1Text)

cylin1_h = Val(TextBox2Text)

cylin2_r = Val(TextBox3Text)

cylin2_h = Val(TextBox4Text)

dist = Val(TextBox5Text)

cen_hi = Val(TextBox6Text)

theta = Val(TextBox7Text) pi / 180

pnt1(2) = 0: pnt2(2) = 0: pnt(2) = 0

'圆柱2展开图

ThisDrawingApplicationDocumentsAdd

pnt1(0) = -cylin2_h / 2: pnt1(1) = 0

pnt2(0) = cylin2_h / 2: pnt2(1) = 0

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt1(0) = cylin2_h / 2: pnt1(1) = 2 pi cylin2_r

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt2(0) = -cylin2_h / 2: pnt2(1) = 2 pi cylin2_r

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt1(0) = -cylin2_h / 2: pnt1(1) = 0

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

For beta = 0 To 2 pi Step 001

x = dist + cylin2_r Cos(beta)

z = cen_hi + cylin2_r Sin(beta)

delta2 = cylin1_r ^ 2 - x ^ 2

If delta2 >= 0 Then

y = Sqr(delta2)

pnt(0) = y: pnt(1) = cylin2_r beta

Set point_obj = ThisDrawingModelSpaceAddPoint(pnt)

pnt(0) = -y

Set point_obj = ThisDrawingModelSpaceAddPoint(pnt)

End If

Next beta

'圆柱1展开图

pnt1(0) = 400: pnt1(1) = 0

pnt2(0) = 400 + 2 pi cylin1_r: pnt2(1) = 0

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt1(0) = 400 + 2 pi cylin1_r: pnt1(1) = cylin1_h

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt2(0) = 400: pnt2(1) = cylin1_h

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

pnt1(0) = 400: pnt1(1) = 0

Set line_obj = ThisDrawingModelSpaceAddLine(pnt1, pnt2)

For phi = 0 To 2 pi Step 001

x = cylin1_r Cos(phi)

y = cylin1_r Sin(phi)

delta1 = cylin2_r ^ 2 - (x - dist) ^ 2

If delta1 >= 0 Then

z = cen_hi + Sqr(delta1)

pnt(0) = 400 + cylin1_r phi: pnt(1) = z

Set point_obj = ThisDrawingModelSpaceAddPoint(pnt)

z = cen_hi - Sqr(delta1)

pnt(1) = z

Set point_obj = ThisDrawingModelSpaceAddPoint(pnt)

End If

Next phi

End Sub

利用以上程序,在AutoCAD平台中生成的两垂直交错圆柱相贯线的展开图如图53所示。

(a) 水平圆柱展开图 (b) 竖直圆柱展开图

图53 在AutoCAD环境下生成的相贯线展开图

用并集命令可以将两个立体图形变成一个整体。快捷键为uni。变成一个整体后无法还原到两个实体的。就算炸开的话都不是原来的两个实体了。所以在要对两个立体图形进行布尔运算的时候要考虑清楚。不可逆的。

最简单、快速的CAD软件是“AutoPOL for Windows”,用它展开天圆地方的方法只要在“管件”中输入圆的直径、方的长度与宽度、天圆地方的高度、圆与方各向的偏移量、及材料厚度后立即出现其立体图,再按“展开”钮,立即得到展开图,该软件可免费下载,并有使用教材,重要的一点,该软件可以展开工程上常用的钣金件,并使你成为钣金专家。

你这如在CAD中纯用手工画展开放样图

那是很麻太困难了

但你这个大圆变两个小圆的构件

可用软件

钢构CAD

则只要输入参数就能自动出整体展开图了

还能同步自动给出下料图面积的

以上就是关于怎样在cad中画出xx实体的外轮廓展开图全部的内容,包括:怎样在cad中画出xx实体的外轮廓展开图、如何将一个CAD立体图形展开、天圆地方怎么用CAD画出展开图来 或者推荐一个软件也行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9768946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存