今天宠物迷的小编给各位宠物饲养爱好者分享实体 设置轮廓的宠物知识,其中也会对CAD怎么在模型空间里提取实体的轮廓?(cad怎么在模型空间里提取实体的轮廓数据)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
修改,三维操作,提取边。然后把实体移开,就能看到你提取出来的边了。
1、打开你需要提取面的模型。将模型要提取的面旋转到你好操作的界面。 2、选择修改---实体编辑--复制面功能,点开。 3、鼠标变成小方框,提示选择面。鼠标左键选择模型实体表面。 4、选择面后提示你选择一个基点。这里我们可以找个比较好记的点进行选择。选择好点后向外移动。 5、移动后,选择屏幕适当位置点一下。屏幕提示输入面编辑选项,这里选择退出,之后又弹出选项依然选择退出。 6、渲染,旋转看一下,面已经成功的被你提取出来了。你就可以进行后续的相关工作了。
把此轮廓选中后,点击鼠标右键,从弹出的菜单中选择“缩放”,然后输入0.3就行了。
你选用了“动态观察”三维线框旋转到想要的视觉效果时,点了“暂停”。那么想要这个角度的视觉形状变成二维平面,可以变二维,但不能修改:①旋转②暂停③点布局或新建布局,④系统自动建立“页面设置管理器”⑤点“关闭”。在布局中定格图形就是它。
在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方法生成三维实体。还可以在已有的实体基础上通过布尔运算生成新的三维实体。
4.2 圆柱与圆柱相贯实体的生成
打开AtuoCAD的VBA程序“宏”或者按“Alt+F8”创建个新的“宏”程序,在用户窗体中绘出相应的控点,再在各个控点下设定相应的程序,用Add- Cylinder的方法生成两个圆柱实体,再用Rotate3D的方法旋转其中一个圆柱实体,最后用布尔运算让两个实体相贯。流程图如4.1所示。
图4.1 圆柱与圆柱相贯实体造型流程图
部分程序如下:
Private Sub CommandButton1_Click()
ThisDrawing.Application.Documents.Add
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(TextBox1.Text)
cylin1_h = Val(TextBox2.Text)
cylin2_r = Val(TextBox3.Text)
cylin2_h = Val(TextBox4.Text)
dist = Val(TextBox5.Text)
cen_hi = Val(TextBox6.Text)
theta = Val(TextBox7.Text) * pi / 180
'绘圆柱1
cylin1_cen(0) = 0
cylin1_cen(1) = 0
cylin1_cen(2) = cylin1_h / 2
Set cylin1_obj = ThisDrawing.ModelSpace.AddCylinder(cylin1_cen, cylin1_r, cylin1_h)
'绘圆柱2
cylin2_cen(0) = dist
cylin2_cen(1) = 0
cylin2_cen(2) = cen_hi
Set cylin2_obj = ThisDrawing.ModelSpace.AddCylinder(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_obj.Rotate3D ax_p1, ax_p2, pi / 2 - theta
'圆柱1与圆柱2的布尔运算
cylin1_obj.Boolean acUnion, cylin2_obj
End Sub
用户界面如图4.1所示,生成的相贯实体如图4.2所示。
图4.2 绘制相贯实体及其展开图的用户界面
(a) 垂直交错 (b) 一般交错
图4.3 在AutoCAD环境下生成的相贯实体
5 圆柱与圆柱相贯线展开图的生成
在实际生产中,圆柱体与圆柱体相贯展开图可运用在管道间的连接焊点的确定,从而大量节约了时间与材料,实际运用非常广泛。在展开图中绘出众多相贯点从而确定展开图相贯线的轮廓。在图5.1中的P点是相贯线上的某一点,P的三维坐标是(x、y、z),通过已知条件求出P点坐标,过程如下:
图5.1 两圆柱相贯实体三视图
竖直圆柱 ①
水平圆柱 ②
改为参数方程形式 ③
将③中的 代入①中
如果
则
如果
则无解,表示此时不存在相贯线,两柱面不相交
图5.2 展开圆柱相贯线的计算模型
已知
如图5.2,相贯线展开图上某点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(TextBox1.Text)
cylin1_h = Val(TextBox2.Text)
cylin2_r = Val(TextBox3.Text)
cylin2_h = Val(TextBox4.Text)
dist = Val(TextBox5.Text)
cen_hi = Val(TextBox6.Text)
theta = Val(TextBox7.Text) * pi / 180
pnt1(2) = 0: pnt2(2) = 0: pnt(2) = 0
'圆柱2展开图
ThisDrawing.Application.Documents.Add
pnt1(0) = -cylin2_h / 2: pnt1(1) = 0
pnt2(0) = cylin2_h / 2: pnt2(1) = 0
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt1(0) = cylin2_h / 2: pnt1(1) = 2 * pi * cylin2_r
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt2(0) = -cylin2_h / 2: pnt2(1) = 2 * pi * cylin2_r
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt1(0) = -cylin2_h / 2: pnt1(1) = 0
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
For beta = 0 To 2 * pi Step 0.01
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 = ThisDrawing.ModelSpace.AddPoint(pnt)
pnt(0) = -y
Set point_obj = ThisDrawing.ModelSpace.AddPoint(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 = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt1(0) = 400 + 2 * pi * cylin1_r: pnt1(1) = cylin1_h
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt2(0) = 400: pnt2(1) = cylin1_h
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
pnt1(0) = 400: pnt1(1) = 0
Set line_obj = ThisDrawing.ModelSpace.AddLine(pnt1, pnt2)
For phi = 0 To 2 * pi Step 0.01
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 = ThisDrawing.ModelSpace.AddPoint(pnt)
z = cen_hi - Sqr(delta1)
pnt(1) = z
Set point_obj = ThisDrawing.ModelSpace.AddPoint(pnt)
End If
Next phi
End Sub
利用以上程序,在AutoCAD平台中生成的两垂直交错圆柱相贯线的展开图如图5.3所示。
(a) 水平圆柱展开图 (b) 竖直圆柱展开图
图5.3 在AutoCAD环境下生成的相贯线展开图
1、打开AutoCAD,点击视图。 2、点击视图后,点击视觉样式,设置为真实。 3、视觉样式设置为真实后,在视图选择三维视图,选择一个等轴测视图。 4、鼠标右键点击工具栏,选择ACAD。 5、然后点击建模。 6、把建模调出界面后,点击要画的图形。 7、然后直接画就可以了。
掉了几张面,自己加2根线后 mesh出面就可以了。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“CAD怎么在模型空间里提取实体的轮廓?”
上一篇
如何能解决金毛掉毛的问题?
下一篇
雷米高针对泌尿系统猫粮怎么样?