求助:在cad中用程序怎么实现输入两个三维点,输入半径,画一个圆柱体?
高手帮帮忙阿~~~,先谢了 会调用lisp吧,给你编了个小程序,试试 请问怎么用这个命令啊 <p>载入后,打yz命令就可在指定位置画出圆柱体了。</p><p></p> <p>简单,画一个底面圆,然后根据两点画直线,拉伸,就可以了</p><p>程序: Dim intCount As Integer ' 当前模型空间的对象数<br/> intCount = ThisDrawing.ModelSpace.Count<br/> <br/> Dim ptCenter(2) As Double<br/> ptCenter(0) = x1: ptCenter(1) = y1: ptCenter(2) = h1<br/> <br/> <br/> Dim objCircle(0) As AcadEntity<br/> Set objCircle(0) = AddCircle(ptCenter, r1) ' 创建拉伸截面<br/> <br/> ' 创建面域<br/> Dim objRegion As Variant<br/> objRegion = ThisDrawing.ModelSpace.AddRegion(objCircle)<br/> objCircle(0).Delete<br/> <br/> Dim objLine As AcadLine, pt(2) As Double<br/> pt(0) = x2<br/> pt(1) = y2<br/> pt(2) = h2<br/> Set objLine = AddLine(ptCenter, pt) ' 创建拉伸路径<br/> <br/> ' 沿路径拉伸面域<br/> Dim objSolid As Acad3DSolid<br/> Set objSolid = ThisDrawing.ModelSpace.AddExtrudedSolidAlongPath(objRegion(0), objLine)<br/> objLine.Delete<br/> <br/> ' 删除已无用的面域<br/> Dim ent As AcadEntity<br/> If ThisDrawing.ModelSpace.Count > intCount Then<br/> Set ent = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 2)<br/> ent.Delete<br/> End If</p><p>大概这样,有些是自定义命令</p> 画一条直线!取两端点!即可!另外渲染的铜棒还真好看! junhua兄,你的程序里应该还要增加改变面域的normal的语句,使面域的法向向量与直线相同。否则当直线不是竖直的时候,拉伸出来的不是圆柱。 小法师 发表于 2008-9-16 12:06 static/image/common/back.gifjunhua兄,你的程序里应该还要增加改变面域的normal的语句,使面域的法向向量与直线相同。否则当直线不是竖 ...
法师师兄,你有比较完整的程序么?能否给小弟参考参考,拜谢啦 这个不错,收藏了,谢谢楼主
页:
[1]
2