CAD展点程序lisp

CAD展点程序lisp

ID:47486509

大小:40.51 KB

页数:5页

时间:2020-01-12

上传者:无敌小子
CAD展点程序lisp_第1页
CAD展点程序lisp_第2页
CAD展点程序lisp_第3页
CAD展点程序lisp_第4页
CAD展点程序lisp_第5页
资源描述:

《CAD展点程序lisp》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

CAD展点程序lisp2009年02月17日星期二01:08P.M.(1)依网上资源文件修改的:----------------------CAD展点程序把下文保存到文本文件中,扩展名改为.lsp,按数据格式要求准备好数据点文件。在CAD中加载lsp文件。运行命令:kszd----------------------;LISP展点程序;展1000点:在HP(AMDAthlon643000+256MB)电胶上仅耗时0.142秒;;                   在金利(Geleron(R)CPU2.40GHz256MB)电胶上耗时0.882秒;数据文件格式为:每一点的数据(点号、X、Y、H)为一行,用逗号或空格作为分隔符,即;点号1X1Y1H1或者点号1,X1,Y1,H1;点号2X2Y2H2或者点号2,X2,Y2,H2;点号3X3Y3H3或者点号3,X3,Y3,H3;......;点号nXnYnHn或者点号n,Xn,Yn,Hn1(defunc:kszd()   (setqff(open(getfiled"请选择要展点的数据文件""""txt"2)"r")         fhbnilt0(getvar"cdate")         cm(getvar"cmdecho")os(getvar"osmode")         tcm1"高程注记"tcm2"点记"   )   (setvar"cmdecho"0)(setvar"osmode"0)   (if(=(tblsearch"layer"tcm1)nil)(command"layer""n"tcm1""))   (if(=(tblsearch"layer"tcm2)nil)(command"layer""n"tcm2""))   (while(setqzb(read-lineff))       (while(vl-string-search","zb)(setqzb(vl-string-subst""","zb)))       (setqzb(read(strcat"("zb")"))                      zb(list(list(nth2zb)(nth1zb))(vl-princ-to-string(lastzb)));注记高程             ;zb(list(list(nth2zb)(nth1zb))(vl-princ-to-string(carzb)));提示:注记点号请用该行             fhb(appendfhb(listzb))       )           )   (setqt1(getvar"cdate"))   (closeff)   (setqzb(vl-sortfhb'(lambda(e1e2)(<(car(care1))(car(care2)))))          x0(car(car(carzb)))x1(car(car(lastzb)))         zb(vl-sortfhb'(lambda(e1e2)(<(cadr(care1))(cadr(care2)))))         y0(cadr(car(carzb)))y1(cadr(car(lastzb)))   )   (command"zoom""w"(listx0y0)(listx1y1))   (setqt2(getvar"cdate"))   (foreachzbfhb       (setqzfc(lastzb)             ;pt(mapcar'+(carzb)'(1.5-1.25));这行改为如下             pt(carzb)       )       (entmake(list'(0."TEXT")'(100."AcDbEntity")'(100."AcDbText")       '(62.3)'(40.2)'(50.0.0)         ;(cons8tcm1)(cons1zfc)(cons10pt);这行改为如下         (cons8tcm1)(cons1zfc)(cons10(mapcar'+pt'(1.5-1.25)))                     )       )       (entmake(list'(0."OINT")'(100."AcDbEntity")'(100."AcDbPoint")       '(62.2)         (cons8tcm2)(cons10pt)                     )       )   )   (setqt3(getvar"cdate")         dt1(*1000000(-t1t0))       dt2(*1000000(-t3t2))   )   (princ(strcat"读入数据共耗时:"(rtosdt123)   "秒展点共耗时"(rtosdt223)"秒"                 "展点数:"(itoa(lengthfhb))   "个每展一点耗:"   (rtos(/dt2(lengthfhb))210)"秒"           )   )   (setvar"cmdecho"cm)(setvar"osmode"os)(princ)) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------修改上面的程序,以根据数据点的坐标加入自写的块,块名称这里为:inblock.dwg依情况自行修改程序相应位置,块文件应放在与待插入块的文件同一目录,即工作目录。------------------------;LISP展块程序(yiling);点号1X1Y1或者点号1,X1,Y1;点号2X2Y2或者点号2,X2,Y2;点号3X3Y3或者点号3,X3,Y3;......;点号nXnYn或者点号n,Xn,Yn(defunc:inb()   (setqff(open(getfiled"请选择要展点的数据文件""""txt"2)"r")         fhbnilt0(getvar"cdate")         cm(getvar"cmdecho")os(getvar"osmode")             )   (setvar"cmdecho"0)(setvar"osmode"0)   (while(setqzb(read-lineff))       (while(vl-string-search","zb)(setqzb(vl-string-subst""","zb)))       (setqzb(read(strcat"("zb")"))                      zb(list(list(nth2zb)(nth1zb)));                           fhb(appendfhb(listzb))       )           )   (closeff)   (setqt1(getvar"cdate"))          (setqt2(getvar"cdate"))   (foreachzbfhb       (setqpt(carzb))            (command"-insert""inblock.dwg"pt"1""""0")           )   (setqt3(getvar"cdate")         dt1(*1000000(-t1t0))         dt2(*1000000(-t3t2))   )   (princ(strcat"读入数据共耗时:"(rtosdt123)   "秒展点共耗时"(rtosdt223)"秒"                 "展点数:"(itoa(lengthfhb))   "个每展一点耗:"   (rtos(/dt2(lengthfhb))210)"秒"           )   )   (setvar"cmdecho"cm)(setvar"osmode"os)(princ)) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------修改上面的程序,以根据数据点的坐标加入自写的块,块有一个属性,依点的属性修改了插入块的属性。块名称这里为:inblock.dwg依情况自行修改程序相应位置,块文件应放在与待插入块的文件同一目录,即工作目录。------------------------;LISP展点程序(yiling);展1000点:在HP(AMDAthlon643000+256MB)电胶上仅耗时0.142秒;;                   在金利(Geleron(R)CPU2.40GHz256MB)电胶上耗时0.882秒;数据文件格式为:每一点的数据(点号、X、Y、H)为一行,用逗号或空格作为分隔符,即;点号1X1Y1H1或者点号1,X1,Y1,H1;点号2X2Y2H2或者点号2,X2,Y2,H2;点号3X3Y3H3或者点号3,X3,Y3,H3;......;点号nXnYnHn或者点号n,Xn,Yn,Hn1(defunc:inbd()   (setqff(open(getfiled"请选择要展点的数据文件""""txt"2)"r")         fhbnilt0(getvar"cdate")         cm(getvar"cmdecho")os(getvar"osmode")             )   (setvar"cmdecho"0)(setvar"osmode"0)       (while(setqzb(read-lineff))       (while(vl-string-search","zb)(setqzb(vl-string-subst""","zb)))       (setqzb(read(strcat"("zb")"))                      zb(list(list(nth2zb)(nth1zb))(vl-princ-to-string(lastzb)));注记高程             ;zb(list(list(nth2zb)(nth1zb))(vl-princ-to-string(carzb)));提示:注记点号请用该行             fhb(appendfhb(listzb))       )           )   (setqt1(getvar"cdate"))   (closeff)   (setqzb(vl-sortfhb'(lambda(e1e2)(<(car(care1))(car(care2)))))         x0(car(car(carzb)))x1(car(car(lastzb)))         zb(vl-sortfhb'(lambda(e1e2)(<(cadr(care1))(cadr(car e2)))))         y0(cadr(car(carzb)))y1(cadr(car(lastzb)))   )   (command"zoom""w"(listx0y0)(listx1y1))   (setqt2(getvar"cdate"))   (foreachzbfhb       (setqzfc(lastzb)                           pt(carzb)       )   (command"-insert""inblock.dwg"pt"1""""0"zfc)       ;(entmake(list'(0."TEXT")'(100."AcDbEntity")'(100."AcDbText")       ;'(62.3)'(40.2)'(50.0.0)         ;(cons8tcm1)(cons1zfc)(cons10pt);这行改为如下       ;(cons8tcm1)(cons1zfc)(cons10(mapcar'+pt'(1.5-1.25)))                     )       ;)       ;(entmake(list'(0."OINT")'(100."AcDbEntity")'(100."AcDbPoint")       ;'(62.2)       ;(cons8tcm2)(cons10pt)       ;             )       ;)   )   (setqt3(getvar"cdate")         dt1(*1000000(-t1t0))       dt2(*1000000(-t3t2))   )   (princ(strcat"读入数据共耗时:"(rtosdt123)   "秒展点共耗时"(rtosdt223)"秒"                 "展点数:"(itoa(lengthfhb))   "个每展一点耗:"   (rtos(/dt2(lengthfhb))210)"秒"           )   )   (setvar"cmdecho"cm)(setvar"osmode"os)(princ))

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭