APP下载

螺纹绘制的AutoCAD程序化

2010-09-07内蒙古科技大学机械工程学院张乃斌

河南科技 2010年12期
关键词:公称圈数程序化

内蒙古科技大学机械工程学院 张乃斌

螺纹绘制的AutoCAD程序化

内蒙古科技大学机械工程学院 张乃斌

利用AutoCAD绘制螺纹、弹簧这类三维图形时,作图过程复杂,工作量大且效率低。针对这一问题,本文阐述了利用AutoCAD所支持的一种内嵌式高级编程语言AutoL ISP进行编程,对AutoCAD进行二次开发,把螺纹程序以命令的形式添加到AutoCAD中,然后用户就可以像使用AutoCAD标准命令一样使用新添加的命令,按提示输入不同的参数,绘制圆柱螺纹。

螺纹CAD绘图L ISP程序程序化

一、引言

在用AutoCAD绘制三维工程图时,若绘制螺纹、弹簧这类三维图形的问题,采用交互式绘图方法,为了保证绘制的三维图形尺寸精确,就必须输入大量精确数据,才能一点一点地画出所需的图形,这样做起来工作量大、效率极低。若利用AutoCAD内嵌的L ISP语言,以其基本参数为变量编制程序来定义图形,操作时只需输入基本参数的具体值即可由程序完成绘图过程。这不仅可以进行参数化绘图,而且大大提高工作效率,提高绘图质量。

二、绘图程序

下面以螺纹为例来说明程序化绘图过程:

1.绘制螺纹的AutoL ISP程序代码如下:

(defun shuru();输入参数

(setq zhijing(getREAL″公称直径:″))

(setq luoju(getreal″螺距:″))

(SETQ QUANSHU(GETREAL″螺纹有效圈数:″))

(SETQ JINGDU(GETint″每转切割次数:″))

(setq QIDIAN(getpoint″输入起始点:″))

)

(defun JISUAN();计算螺纹参数

(setq H(3 0.8660254 luoju))

(setq D2(-zhijing(3 20.375 H)))

(SETQ LD2(3 D2 PI))

(SETQ LUOXUANJIAO(A TAN(/LUOJU LD2)))

(SETQ LXJ(3 180(/LUOXUANJIAO pi)))

(setq banjiao(atan(/luoju zhijing)))

(setq djxc(sqrt(+(exp t luoju 2)(expt zhijing 2))))

(setq pyj(+banjiao luoxuanjiao))

(setq pianyi(3(sin pyj)djxc))

(setq pianyi(/pianyi 2.0000))

(SETQ SL(fix(3(+1 QUANSHU)JINGDU )));数量

(SETQ FD(/360.0000 JINGDU));分度

(SETQ BC(/(3 1.0000 LUOJU)JINGDU))

(setq bc(-bc));步长

)

(defun draw();绘制

(setq pt1(polar QIDIAN PI(/LUOJU 2. 0000)))

(SETQ PT1(POLAR PT1(3 1.5 PI)(+ (3 0.1250 H)(/ZH IJING 2.0000))))

(setq p t2(polar p t1 0(3 luoju 0.375(cos LU2 OXUANJIAO))))

(SETQ PT2(POLAR PT2(3 0.5 PI)(3 0.750 H)))

(setq pt3(polar p t2 0(3 0.25 LUOJU(cos LU2 OXUANJIAO))))

(setq pt4(polar pt1 0(3 LUOJU(cos LUOXU2 ANJIAO))));基本三角形

(setq p t5(polar QID IAN pi(3 2.00 LUOJU QUANSHU)))

(setq pt7(polar p t5 0(3 2 LUOJU)))

(setq p t7(polar pt7(3 1.5 pi)(/ZH IJING 2))) ;螺纹轴线

(setq pt6(polar p t5 0 LUOJU))

(SETQ PT6(POLAR PT6(3 0.5 PI)(3 0.50000 ZH IJING)))光杆轮廓

(SETQ PT8(POLAR PT1 0(3 0.5 LUO2 JU)))

(SETQ PT9(POLAR PT8(3 0.5 PI)(3 0.8 ZHIJING)));齿条转动轴线

(SETQ MV(POLAR Q ID IAN 0(/ZH I2 JING 2.0000)))

;制做齿条并转角

(command″pline″p t1 p t2 p t3 p t4″c″)

(command″extrude″″last″″″ZH IJING″″)

(setq SS(ssget p t1))

(rotate3d ss PT9 PT8 90)

(COMMAND″MOVE″″Previous″″″QIDIAN MV )

(rotate3d ss″″PT8 PT9 90)

(rotate3d ss″″PT9 PT8 LXJ)

(SETQ YD(POLAR QID IAN 0(/LUOJU 2. 0000)))

(COMMAND″MOVE″″Previous″″″QID IAN YD );外移

;制做光杆

(SETQ PT0(POLAR Q IDIAN 0 LUOJU))

(COMMAND″L INE″PT5 PT0″″)

(COMMAND″rectang″PT6 Q ID IAN)

(COMMAND″revolve″″LAST″″″PT5 qidian″″)

;布尔运算

(SETQ PT(POLAR PT4 0 pianyi))

(SETQ SQ p t6)

(while(/=SL 0);判断

(SETQ SS(SSGEt p t))

(setq p ta(polar p t 0 bc))

(command″copy″ss″″p t pta)

;(p rin1 p t)

(COMMAND″subtract″sq″″ss″″);相减

;(setq zanting(getstring))

(setq SS(ssget pt6))

(ROTA TE3D SS PT5 qidian FD);旋转

(setq PT p ta);步进

(SETQ SL(-SL 1))

)

(setq p ta(polar p t 0 bc))

(COMMAND″ERASE″PT″″)

)

(defun C:3DLW()

(arxload″geom3d.ARX″N IL)

(shuru)

(SETQ SSs(GETVAR″OSMODE″))

(SETVAR″OSMODE″0)

(SETQ SNM(GETVAR″SNAPMODE″))

(SETVAR″SNAPMODE″0)

(SETQ PICKB(GETVAR″PICKBOX″))

(SETVAR″PICKBOX″0)

(setq cmd(getvar″cmdecho″))

(setvar″cmdecho″0)

(JISUAN)

(SETQ GD(3 1.2 ZH IJING))

(SETQ CT(POLAR QIDIAN PI(3 LUOJU QUANSHU)))

(COMMAND″ZOOM″″C″CT GD)

(draw)

(SETVAR″OSMODE″SSs)

(setvar″cmdecho″cmd)

(SETVAR″SNAPMODE″SNM)

(SETVAR″PICKBOX″PICKB)

)

(p rinc″ C:3DLW为绘制命令″)

(p rinc)

2.绘图

只要将上述程序复制、粘贴到Autocd2004下面support目录里的autocad2004doc.Lsp文件里即可,以后在AutoCAD2000绘图窗口命令行里输入3dlw后,按提示输入不同的参数,即可绘制所需要的三维圆柱螺纹。

绘制的螺纹参数提示如下:(1)公称直径;(2)螺距;(3)螺纹有效圈数;(4)每转切割次数;(5)输入起始点。图1为用AutoCAD绘制的螺纹,参数如下:

螺纹公称直径=30mm;螺距=3mm;螺纹有效圈数=10;每转切割次数=100。

图1 螺纹Fig.1 Thread

三、结语

AutoCAD采用开放式体系结构,用Visual L ISP集成开发环境,我们可以在一个单独的环境中执行文本编辑、程序调试,与AutoCAD及其他应用程序的交互等操作,极大地方便了AutoCAD的二次开发。

[1]张跃峰,陈通.AutoCAD2000[M].北京:清华大学出版社,2003

[2]胡志勇.计算机辅助设计基础[M].内蒙古:内蒙古大学出版社,2004

book=65,ebook=91

猜你喜欢

公称圈数程序化
◆钢筋混凝土排水管
钢筋混凝土排水管
◆ 钢筋混凝土排水管
钢筋混凝土排水管
基于Houdini的VEX程序化建模高效搭建数字孪生虚拟工厂
通过绞车钢丝绳计算井深
晨起转腰改善便秘
晨起转腰改善便秘
中国程序化广告技术生态
空中显示计数的跳绳