关于标注圆心坐标并列表的实现与AutoLISP程序
- 格式:pdf
- 大小:113.17 KB
- 文档页数:2
2012年第3期 (总第14卷151期) 大众科技 DAZHONG KE J No.3,2012 (Cumulatively No.1 51)
关于标注圆心坐标并列表 的实现与AutoL l SP程序
甘文的高建领谢江怀
(肇庆科技职业技术学院,广东肇庆526114)
【摘要】文章介绍在AutoCAD中如何实现快速标注圆心坐标并列表。利用二次开发技术,运用AutoLISP程程、开发在
AutoCAD实现快速标注圆心坐标并列表的新命令,从而提高AutoCAD的绘图效率和准确性。
【关键词】AutoLISP程序;标注圆心坐标;列表
【中图分类号】TP391 【文献标识码】A 【文章编号】1008一l151(2012)03—0057—02
The realization of labeling center coordinates listing and AutoLISP program
Abstact:How to fastly realize labeling center coordinates 1isting in AutoCAD was introduced in this paper.Made
use of second development technology and applied AutoLISP coarse,some new orders that labeling coordinates 1isting
were realized rapidly in AutoCAD,were developed,thus the efficiency and accuracy of drawing were improve. Keywords:AutoLISP program:Labeling center coordinates;Listing
1前言
AutoCAD以其强大的图形支撑能力和开放的结构体系,
无可争辩地成为模具设计与制造的不可缺少的软件。而在
AutoCAD出图少不了对图素进行标注,标注在画图的过程中
占用了大量的时间,更是一个容易出错的环节。在模具设计
与制造中,特别注射模,顶针孔、水道、复位装置等,都设
及到孔的设计和加工。从设计到编程再到加工,孔的形位即
圆的大小、位置都要在图纸上表示清楚,对于编程员要根据
圆的数量调用子程序。若模板上有很多圆,绘图员要对圆进
行标注很多次,这样会造成时间上的浪费,还造成图纸繁杂
不清,有时还可能出现不必要的错误。如果能有一个命令自
动快速准确地把圆的形位表达出来,并列在一个表上,还自
动计算出孔的数量,这样可以方便设计者、绘图员、审绘员、
编程员、制造工人、Qc等的工作,还可以简化图纸,更重要
的是减少人为错误,节省时间,提高出图效率等。
因此,对圆心标注坐标进行开发是很有必要的,特别是
在较为复杂的注射模具零件。
2开发目标
希望在VLISP集成环境下运动AutoLISP语言设计开发一
个新程序,使得AutoCAD产生一个具有新功能的命令。该命
令以0点(0,0)为基准对同一属性(线形、颜色)的相同
半径的圃的形位自动快速准确地表达出来,即把相同半径的
圆的半径、数量和相对0点的x坐标、y坐标准确地表达出 来,并列在一个表上,还可以对圆加以说明。整个过程设置
好标准的文本、线属性,同时文本比例,组成表的线比例要
根据图形的大小自动调节。如图2.1所示,板上有很多圆,
使用该命令可迅速完成所有圆的标,并列表。
图2.i
3在AutoCAD中实现快速标注圆心坐标并
列表的原理与实现
3.1设计原理和流程
程序设计流程图,如图3.1所示:
【收稿日期】2012一O1~24
【作者简介】甘文的(1982一),男,广东肇庆人,肇庆科技职业技术学院教师。
.
57. 选择圆并获得圆的属性 I
获得与所选择圆具有相同属I生的圆的选择集
, 获得选择集中所有圆的圆心坐标的选择集 I
对圆心选择集进行排序命名
绘列表同时将所需信息写入列表
图3.1
3.2程序的编写
该程序的特点是调用子程获得具有相同属性的圆;还有
按输入的字母的ascii码决定打印圆名称的颜色;它还可以
对列表加以说明;列表的绘制由一条一条直线组成。
(1)选择圆并获得圆的属性;把所要属性组成选择集并
倒序的子程序,名为SSX—fe:
(defun SSXfe(/x data fltr ent) (setq ent(car(entsel \n请选择对象/<None>:
))) (if ent (progn
(setq data(entget ent))
(foreach x’(0 2 6 8 40 62):
(if(assoc x data)
(setq fltr (cons(aSSOC x data)fltr)
)))
(reverse fltr)
))) (2)按输入的字母的ascii码决定打印圆名称的颜色: (if(>(strlen cn)1)(setq RGB(+RGB(ascii(substr
cn 2 1)))))
(if(<=RGB 0)(setq R_B 140)(setq R B(一RGB 65)))
(cond((<RB 0)(setq RGB RGB)) ((<=R_B 23)(setq RGB(+(%R—B 1O)10)))
((and(>RB 23)(<=R B 47))(setq R_B(一RB 24) RGB(+ R_B 10)11))) ((and(>R_B 47)(<=R—J3 71))(setq R—J3(一R_B 48)
RGB(+( RB 1O)12)))
((and(>R_B 71)(< RGB(+(:lc RB 1O)13))) ((and(>R B 95)(<:
RGB(+( R B 10)14))) R_B 95))(setq RB(一RB 72)
RB l19))(setq R B(一RB 96)
((>RB 119)(setq RGB 140)))
(if(=RGB 131)(setq RGB 115)) (if(=RGB 141)(setq RGB 116)) (3)列表的绘制:
(if(/=tex e ) (progn
(if(=JW Y )
(command cecolor I30 iine lpl(polar lpl
1ine rp2(polar rp2 cecolor 2 text (polar fnp 4.7123889 th) (if(and(=JW N )(=KG 0)) (command cecolor 130 1ine lpi(polar Ipl 1 ine rpl(polar rpl
cecolor 2 4.7123889 th)~
4.7123889 th)~
( 0.6 th)0 rex))
4.7123889 th)~ 4.7123889 th)~
text (polar fnp 4.7123889 th)(:Ic 0.6 th)0 tex)) (if(and(:JW N )(/:KG 0))
(co ̄aand cecolor 1 3O
1ine lpl(polar Ipl 4.7123889 th) 1ine rp5(polar rp5 4.7123889 th) cecolor 2 text (polar fnp 4.7123889 th)( 0.6 th)0 tex)) (setq ipl(polar ipl 4.7123889 th)
rpl(polar rpl 4.7123889 th)
rp2(polar rp2 4.7123889 th) rp5 (polar rp5 4.7123889 th):::
fnp(polar fnp 4.7123889 th))))
4注意事项
大方。 (1)程序用了几个程序,要注意调用。
(2)设置打印颜色有点烦,要认真对待。
(3)打印列表的线时,要注意线的起点和终点。
(4)打印文本的起始点要设置好,要以列表相配。
(5)打印列表的比例要以图形大小相匹配,以达到美观
【参考文献】
[1]1李学志.Visual LISP程序设计(AutoCAD 2006)[M】.清华大 学出版社. (2】陈启发,等.人工智能一AutoLISP一认识与实践一cAD汉字
谐和技术一CQF软件包揭秘【M】.北京:中国电力出版社,
2006. 『31赵景亮编著.AutoCAD 2004与AutoLISP二次开发技术 fM】.北京:清华大学出版社,2004.
【4]姚涵珍,等.AutoCAD2000工程绘图及开发基础【M].北京: 机械工业出版社,2002. 【5]5孙江宏.AutoCAD 2000应用与开发技巧【M】.清华大学出
版社. [6]6余承飞,等.Visual LISP[M].北京:北京大学出版社,1988.
.58.