首页 样条曲线转多段线lisp

样条曲线转多段线lisp

举报
开通vip

样条曲线转多段线lisp;;;下载此文档后,将所有文字复制到文本文档保存,再将文本文档的后缀txt更改为Isp,启动CAD后加载此文件即可使用(princ"加载程序成功,输入s2p命令可应用此工具\n");;;***样条曲线转多段线程序开始***(defunspIine-to-pIine(/i)(vI-Ioad-com)(setq*thisdrawing*(vIa-get-activedocument(vIax-get-acad-object));_endofvIa-get-activedocument*modeIspace*(vIa-g...

样条曲线转多段线lisp
;;;下载此文档后,将所有文字复制到文本文档保存,再将文本文档的后缀txt更改为Isp,启动CAD后加载此文件即可使用(princ"加载程序成功,输入s2p命令可应用此工具\n");;;***样条曲线转多段线程序开始***(defunspIine-to-pIine(/i)(vI-Ioad-com)(setq*thisdrawing*(vIa-get-activedocument(vIax-get-acad-object));_endofvIa-get-activedocument*modeIspace*(vIa-get-ModeISpace*thisdrawing*));_endofsetq(setqspIine-Iist(get-spIine))(setqi(-1))(ifspIine-Iist(progn(setqmsg"\nNumberofsegments<100>:")(initget6)(setqnum(getintmsg))(if(or(=num100)(=numniI))(setqnum100));_endofif(repeat(IengthspIine-Iist)(setqspIobj(nth(setqi(1+i))spIine-Iist))(convert-spIinespIobjnum));_endofrepeat);_endofprogn);_endofif);_endofspIine-to-pIine(defunget-spline(/spl-listobjsplineno-enti)(setqspl-listnilobjnilspline"AcDbSpline"selsets(vla-get-selectionsets*thisdrawing*)ss1(vlax-make-variant"ss1"));_endofsetq(if(=(vla-get-countselsets)0)(setqssobj(vla-addselsetsss1)));_endofif(vla-clearssobj)(setqno-ent1)(whileno-ent(prompt"\nSelectsplines:")(vla-Selectonscreenssobj)(if(>(vla-get-countssobj)0)(progn(setqno-entnil)(setqi(-1))(repeat(vla-get-countssobj)(setqobj(vla-itemssobj(vlax-make-variant(setqi(1+i))));_endofvla-item);_endofsetq(cond((=(vlax-get-propertyobj"ObjectName")spline)(appendspl-list(listobj)));_endofsetq));_end-ofcond);_endofrepeat);_endofprogn(prompt"\nNoentitiesselected,tryagain."));_endofif(if(and(=nilno-ent)(=nilspl-list))(progn(setqno-ent1)(prompt"\nNosplinesselected.")(quit));_endofprogn);_endofif);_endofwhile(vla-delete(vla-itemselsets0))spl-list);_endofget-spline(defunconvert-spline(splobjn/i)(setqpoint-listnil2Dpoint-listnilz-listnilspl-lyr(vlax-get-propertysplobj'Layer)startSpline(vlax-curve-getStartParamsplobj)endSpline(vlax-curve-getEndParamsplobj)i(-1));_endofsetq(repeat(+n1)(setqp(vlax-curve-getPointAtParamsplobj(*i(/(-endsplinestartspline)n));_endof*);_endofvlax-curve-getPointAtParam);_endofsetq(setq2Dp(list(carp)(cadrp))2Dpoint-list(append2Dpoint-list2Dp)point-list(appendpoint-listp)z(caddrp)z-list(appendz-list(listz)));_endofsetq);_endofrepeat(setqsumm(apply'+z-list))(setqarraySpace(vlax-make-safearrayvlax-vbdouble;elementtype(cons0(-(lengthpoint-list)1));arraydimension);_endofvlax-make-safearray);_endofsetq(setqvert-array(vlax-safearray-fillarraySpacepoint-list))(vlax-make-variantvert-array)(if(and(=:vlax-true(vlax-get-propertysplobj'IsPLanar))(=summ0.0));_endofand(setqplobj(add-polyline2Dpoint-listvla-AddLightweightPolyline);_endofadd-polyline);_endofsetq(setqplobj(add-polylinepoint-listvla-Add3DPoly);_endofadd-polyline);_endofsetq);_endofif(vlax-put-propertyplobj'Layerspl-lyr)(vla-deletesplobj)(vlax-release-objectsplobj));_endofconvert-spline(defunadd-polyline(pt-listpoly-func)(setqarraySpace(vlax-make-safearrayvlax-vbdouble(cons0(-(lengthpt-list)1));arraydimension);_endofvlax-make-safearray);_endofsetq(setqvertex-array(vlax-safearray-fillarraySpacept-list));_endofsetq(vlax-make-variantvertex-array)(setqplobj(poly-func*modelspace*vertex-array);_endofpoly-func);_endofsetq);_endofadd-polyline(defunc:s2p()(spline-to-pline)(princ));_endofc:s2p;;;***样条曲线转多段线程序结束***
本文档为【样条曲线转多段线lisp】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
lizheng
暂无简介~
格式:doc
大小:9KB
软件:Word
页数:6
分类:建筑/施工
上传时间:2022-12-02
浏览量:20