您现在的位置: 首 页 > 教程文档 > cad教程 > AutoCAD下几个特殊编辑功能的开发

    AutoCAD下几个特殊编辑功能的开发


作者:网友 日期:2007-05-03
[ 1 ] [ 2 ] [ 3 ]     下一页
 

AutoCAD作为强大而专业的工程绘图软件,提供了丰富的矢量图编辑工具,但也有一些常用的特殊编辑功能没有提供,给交互式绘图工作中的图形编辑带来了不便。例如, 在绘制地理图时, 经常遇到绘制铁路线;在手动矢量化过程中,为精确调整矢量图与底图的符合程度, 需要增加或减少多义线节点。这些功能AutoCAD缺省时无法实现,如果通过编程让计算机自动完成上述功能,则既可提高工作效率又可减轻工程设计人员的劳动强度。

 

AutoCAD软件提供了许多开放式接口,允许用户通过这些接口对AutoCAD进行二次开发,为AutoCAD增加新功能,以满足用户的工作需要。LISP语言程序就是常用的一种,在AutoCAD R14中,将编写的LISP程序(函数)加入到ACADr14.LSP 文件中,这些函数就如同AutoCAD的基本命令一样,非常方便。下面开发的几个LISP函数程序分别实现了绘制铁路线型、多义线节点的增加、删除操作等特殊编辑功能。

 

绘制铁路线型

 

1.程序设计思路

 

在AutoCAD的线型库文件ACAD.LIN、ACADISO.LIN分别新增实线段与空白段之比为1∶1、名为“Railway” 的线型,描述格式如下:

 

在ACAD.LIN中增加:

 

*Railway,Railway — —

 

A,1,-1

 

在ACADISO.LIN中增加:

 

*Railway,Railway — —

 

A,15,-15

 

通过对选定多义线设置线宽(铁路线宽),原点拷贝,将由拷贝生成的多义线设置为新建的“铁路”图层,颜色设为“白色”,线型设为“Railway”,线宽为原线宽的0.7倍,这样原多义线与叠加在其上的宽度稍窄的白色虚线就构成了形象逼真的铁路线。

 

2.程序代码

 

 

(defun c:tlx()

 

 

(setvar “cmdecho” 0)

 

(setq ss (ssget ‘((0 .“LWPOLYLINE”))))

 

(if (equal ss NIL)

 

(exit) ; 没有选择对象或已取消

 

)

 

(setq tlkd (getstring“请输入铁路线宽度:”))

 

(command “pedit” ss “width” tlkd “”)

 

(command “copy” ss “” “0,0” “0,0” “”)

 

(command “layer” “m” “铁路” “L” “Railway” “” “”)

 

(command “layer” “s” “铁路” “c” “255” “” “”)

 

(setq sset (ssget “L”))

 

(command “pedit” sset “width” (setq tlkd1 (* (atof tlkd) 0.7)) “L” “ON” “”)

 

(setq ename1 (ssname sset 0)

 

ent1 (entget ename1))

 

(setq ent11 (nth 5 ent1))

 

(setq ent11 (subst (cons 8 “铁路”) ent11 ent1))

 

(entmod ent11)

 

(setq ent12 (nth 6 ent11))

 

(setq ent12 (subst (cons 6 “Railway”) ent12 ent11))

 

(entmod ent12)

 

)


[ 1 ] [ 2 ] [ 3 ]     下一页
1)本站所有资源需要用迅雷下载,请确保您已经安装迅雷软件,下载迅雷  2)资源如需解压密码,密码为:www.coolsc.com 或者www.sooogl.com

设为首页    |    加入收藏    |    广告服务    |    联系我们    |    网站地图    |    网站搜索
百度大联盟认证绿色会员
QQ交流群:1792001(已满) 17383087(已满) 29910201(已满) 53365200 13287661 58115297
酷素材----为您搜集最有效的设计类素材 ©版权所有
本站所有资源,都来自互联网。如有版权问题请联系我们删除!本站资源用于学习交流,请勿用于商业。 !
诚邀友情链接,联系qinzhen_jeh#tom.com(把#替换成@)