论文部分内容阅读
摘要:现在VILSP集成环境下运用AutoLISP对AutoCAD的标注样式进行二次开发,达到快速自动定义标注样式,准确做好绘图准备,达到提高绘图效率的效果。
关键词:AutoLISP;标注样式;二次开发
一、前言
计算机辅助设计软件的普及,AutoCAD软件在众多设计软件中日显突出,其应用之广泛,功能之强大,发展性之好是有目共睹的。而AutoCAD没有良好的针对性,它本身是功能很大众化,没有一些有特殊要求的功能。比如标注样式的设置,使用者需花一段时间进行设置,而这些时间往往是一些简单的,重复的,影响了AutoCAD的应用效率。现开利用二次开发技术对标注样式进开发,使得标注样式达到自动定义的功能。开发所使用的语言是AutoLISP,利用这个语言可以在AutoCAD中开发很多命令,使用很方便。
AutoLISP语言是一种嵌在 AutoCAD内部的LISP编程语言,既具有一般高级语言的基本结构和功能,包括赋值、打印、条件、循环 、文件等函数 。又具备AutoCAD所特有的图形处理能力 。利用AutoLISP语言编制的程序可以直接增加、修改和调用 AutoCAD命令,在各种工程 CAD系统的开发中起着重要的作用。在AutoCAD2000以后,通过Visual LISP (VLISP)集成开发环境(Integrated Development Environment ,IDE)所提供的编辑器、凋试器以及其他工具,用户可方便地编写和修改AutoLISP源程序代码,调试、运行AutoLISP程序。
二、开发目的
用户在使用AutoCAD进行绘图时,特别是一个公司的设计绘图部门,为了得到统一的标注样式,往往要先设定方便用户及其客户的标注样式,而这个过程要浪费很多时间,而且可能出现错误,给绘图的准备工作增大了难度。为了减轻绘图者的工作量和工作难度,节省绘图时间,减少错误,现在VILSP集成环境下运用AutoLISP对AutoCAD的标注样式进行二次开发,达到快速生产标注样式,提高绘图效率的效果。
三、开发的关键技术和程序
(一)程序的预期目标
希望使用一个命令自动快速完成标注样式的设置,在标注样式管理自动生成一个新的标注样式,该标注样式完全能过程序实现参数化的设置,其设置完全由用户来设定。标注字高、引线等都是按图型的比例设定,使得打印效果更美观大方。如上图。
(二)构思程序流程
1.程序名为:de.lsp
2.程序设计流程图,如左图。
(三)程序编写
(defun C:de (/ ss ssdim ss0 listA listB listC dimV n )
(setq obl (getvar "blipmode")
ocm (getvar "cmdecho")
col (getvar "cecolor"))
(command "_.UNDO" "_GROUP")
(setvar "blipmode" 0) (setvar "cmdecho" 0)
(command "_.style" "mlts0" "Times.ttf" 0 1 0 "N" "N"
"_.style" "mlts" "romand.shx" 0 1 0 "N" "N" "N")
(command "_.linetype" "s" "center" ""
"_.linetype" "s" "hidden" ""
"_.linetype" "s" "continuous" "")
(setq listA (list "dimalt" "dimaltd" "dimalttd" "dimalttz" "dimaltu" "dimaltz" "dimapost" "dimasz"
"dimaunit" "dimblk" "dimblk1" "dimblk2" "dimcen" "dimclrd" "dimclre" "dimclrt" "dimdec" "dimdle"
"dimdli" "dimexe" "dimexo" "dimfit" "dimgap" "dimjust" "dimlfac" "dimlim" "dimlunit" "dimpost" "dimrnd"
"dimsah" "dimscale" "dimsd1" "dimsd2" "dimse1" "dimse2" "dimsoxd" "dimtad" "dimtdec" "dimtfac"
"dimtih" "dimtix" "dimtm" "dimtofl" "dimtoh" "dimtol" "dimtolj" "dimtp" "dimtsz" "dimtvp" "dimtxsty"
"dimtxt" "dimtzin" "dimunit" "dimupt" "dimzin" "dimdsep"
)
listB (list 0 2 2 0 2 0 "" 0.18
1 "" "" "" 0 3 3 2 2 0
0.02 0.1 0 3 0.05 0 1 0 2 "" 0
0 50 0 0 0 0 0 0 2 1
0 0 0 1 0 0 1 0 0 0 "mlts"
0.25 0 2 0 8 ".")
k 0)
(setq ssdim (tblsearch "dimstyle" "mlts"))
;;;;;
(if (= ssdim nil)
(progn
(command "_.dimstyle" "s" "mlts")
(setq ssdim (tblsearch "dimstyle" "mlts"))
)
(command "_.dimstyle" "r" "mlts")
)
(setq ss (assoc 2 ssdim)
ss (strcase (cdr ss)))
(if (= ss "MLTS")
(foreach dimV listA
(setvar (nth k listA) (nth k listB))
(setq k (1+ k))
))
(setvar "blipmode" obl) (setvar "cecolor" col) (setvar "cmdecho" ocm)
(command "_.UNDO" "_E")
(princ)
)
(princ " **de.LSP (V4.00)** Date:2011.1.10Product By:莫玉梅")
(princ " Company:廣东工业大学机电工程学院 ")
(princ " Type------------- to run this program.")
(princ " 此程序用来创建文本样式")
(princ)
四、开发注意事项
1.设置文本字型时,要根据用户本身的需要,设置好字型,"Times.ttf"、"MYM.shx"为字型文件;2.ListA的函数与listB的值是一一对应的,编写时在注意函数和值的位置;3.使用if循环时要注意其语法;4.以下所有程序在使用之前都用此标注样式,就有了统一的标注样式。
五、结论
开发了这个命令,用户在使用AutoCAD进行绘图时,就很快捷地得到统一的标注样式,方便用户及其客户的标注样式,同时会节省很多时间,减少错误的出现,大大降低了绘图的准备工作的难度。
【参考文献】
[1]郭剑峰编著.用Visual LISP开发AutoCAD2000应用程序.人民邮电出版社.
[2]李学志编著.Visual LISP程序设计(AutoCAD 2006).清华大学出版社.
[3]用Visual LISP开发AutoCAD 2004应用程序.科学出版社.
[4]余承飞编著.快易通Visual LISP技术.北大学出版社.
“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”
关键词:AutoLISP;标注样式;二次开发
一、前言
计算机辅助设计软件的普及,AutoCAD软件在众多设计软件中日显突出,其应用之广泛,功能之强大,发展性之好是有目共睹的。而AutoCAD没有良好的针对性,它本身是功能很大众化,没有一些有特殊要求的功能。比如标注样式的设置,使用者需花一段时间进行设置,而这些时间往往是一些简单的,重复的,影响了AutoCAD的应用效率。现开利用二次开发技术对标注样式进开发,使得标注样式达到自动定义的功能。开发所使用的语言是AutoLISP,利用这个语言可以在AutoCAD中开发很多命令,使用很方便。
AutoLISP语言是一种嵌在 AutoCAD内部的LISP编程语言,既具有一般高级语言的基本结构和功能,包括赋值、打印、条件、循环 、文件等函数 。又具备AutoCAD所特有的图形处理能力 。利用AutoLISP语言编制的程序可以直接增加、修改和调用 AutoCAD命令,在各种工程 CAD系统的开发中起着重要的作用。在AutoCAD2000以后,通过Visual LISP (VLISP)集成开发环境(Integrated Development Environment ,IDE)所提供的编辑器、凋试器以及其他工具,用户可方便地编写和修改AutoLISP源程序代码,调试、运行AutoLISP程序。
二、开发目的
用户在使用AutoCAD进行绘图时,特别是一个公司的设计绘图部门,为了得到统一的标注样式,往往要先设定方便用户及其客户的标注样式,而这个过程要浪费很多时间,而且可能出现错误,给绘图的准备工作增大了难度。为了减轻绘图者的工作量和工作难度,节省绘图时间,减少错误,现在VILSP集成环境下运用AutoLISP对AutoCAD的标注样式进行二次开发,达到快速生产标注样式,提高绘图效率的效果。
三、开发的关键技术和程序
(一)程序的预期目标
希望使用一个命令自动快速完成标注样式的设置,在标注样式管理自动生成一个新的标注样式,该标注样式完全能过程序实现参数化的设置,其设置完全由用户来设定。标注字高、引线等都是按图型的比例设定,使得打印效果更美观大方。如上图。
(二)构思程序流程
1.程序名为:de.lsp
2.程序设计流程图,如左图。
(三)程序编写
(defun C:de (/ ss ssdim ss0 listA listB listC dimV n )
(setq obl (getvar "blipmode")
ocm (getvar "cmdecho")
col (getvar "cecolor"))
(command "_.UNDO" "_GROUP")
(setvar "blipmode" 0) (setvar "cmdecho" 0)
(command "_.style" "mlts0" "Times.ttf" 0 1 0 "N" "N"
"_.style" "mlts" "romand.shx" 0 1 0 "N" "N" "N")
(command "_.linetype" "s" "center" ""
"_.linetype" "s" "hidden" ""
"_.linetype" "s" "continuous" "")
(setq listA (list "dimalt" "dimaltd" "dimalttd" "dimalttz" "dimaltu" "dimaltz" "dimapost" "dimasz"
"dimaunit" "dimblk" "dimblk1" "dimblk2" "dimcen" "dimclrd" "dimclre" "dimclrt" "dimdec" "dimdle"
"dimdli" "dimexe" "dimexo" "dimfit" "dimgap" "dimjust" "dimlfac" "dimlim" "dimlunit" "dimpost" "dimrnd"
"dimsah" "dimscale" "dimsd1" "dimsd2" "dimse1" "dimse2" "dimsoxd" "dimtad" "dimtdec" "dimtfac"
"dimtih" "dimtix" "dimtm" "dimtofl" "dimtoh" "dimtol" "dimtolj" "dimtp" "dimtsz" "dimtvp" "dimtxsty"
"dimtxt" "dimtzin" "dimunit" "dimupt" "dimzin" "dimdsep"
)
listB (list 0 2 2 0 2 0 "" 0.18
1 "" "" "" 0 3 3 2 2 0
0.02 0.1 0 3 0.05 0 1 0 2 "" 0
0 50 0 0 0 0 0 0 2 1
0 0 0 1 0 0 1 0 0 0 "mlts"
0.25 0 2 0 8 ".")
k 0)
(setq ssdim (tblsearch "dimstyle" "mlts"))
;;;;;
(if (= ssdim nil)
(progn
(command "_.dimstyle" "s" "mlts")
(setq ssdim (tblsearch "dimstyle" "mlts"))
)
(command "_.dimstyle" "r" "mlts")
)
(setq ss (assoc 2 ssdim)
ss (strcase (cdr ss)))
(if (= ss "MLTS")
(foreach dimV listA
(setvar (nth k listA) (nth k listB))
(setq k (1+ k))
))
(setvar "blipmode" obl) (setvar "cecolor" col) (setvar "cmdecho" ocm)
(command "_.UNDO" "_E")
(princ)
)
(princ " **de.LSP (V4.00)** Date:2011.1.10Product By:莫玉梅")
(princ " Company:廣东工业大学机电工程学院 ")
(princ " Type-------------
(princ " 此程序用来创建文本样式")
(princ)
四、开发注意事项
1.设置文本字型时,要根据用户本身的需要,设置好字型,"Times.ttf"、"MYM.shx"为字型文件;2.ListA的函数与listB的值是一一对应的,编写时在注意函数和值的位置;3.使用if循环时要注意其语法;4.以下所有程序在使用之前都用此标注样式,就有了统一的标注样式。
五、结论
开发了这个命令,用户在使用AutoCAD进行绘图时,就很快捷地得到统一的标注样式,方便用户及其客户的标注样式,同时会节省很多时间,减少错误的出现,大大降低了绘图的准备工作的难度。
【参考文献】
[1]郭剑峰编著.用Visual LISP开发AutoCAD2000应用程序.人民邮电出版社.
[2]李学志编著.Visual LISP程序设计(AutoCAD 2006).清华大学出版社.
[3]用Visual LISP开发AutoCAD 2004应用程序.科学出版社.
[4]余承飞编著.快易通Visual LISP技术.北大学出版社.
“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”