zheng123 发表于 2007-2-15 11:37:00

[求助]我想改变封闭多义线的走向,怎么改呢

undefined

zheng123 发表于 2007-2-15 11:48:00

回复:(zheng123)[求助]我想改变封闭多义线的走向,...

比如,多义线原来的方向是逆时针的, 现在想将它改成顺时针方向的,怎么改呢,还请各位大虾帮忙。<br/>

alin 发表于 2007-2-16 21:43:00

(defun C:REVPLINE(/ obj)<br/>&nbsp; (setq obj (vlax-ename-&gt;vla-object (car (entsel "\nSelect a polyline: "))))<br/>&nbsp; (VxRevPline obj)<br/>&nbsp; (princ)<br/>)<br/>; Reverse vertex order of Polylines.<br/>; Copyright:<br/>;&nbsp;&nbsp; &copy;2004 MENZI ENGINEERING GmbH, Switzerland<br/>; Arguments :<br/>;&nbsp;&nbsp; Obj = Pline object <br/>; Return :<br/>;&nbsp;&nbsp; &gt; Pline object reversed <br/>; Notes:<br/>;&nbsp;&nbsp; - Credits to Angeliki Anastasopoulou<br/>; <br/>(defun VxRevPline (Obj / BlgLst ObjName PntLst SegCnt TmpLst Ubound)<br/>&nbsp;(setq ObjName (vlax-get Obj 'ObjectName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TmpLst (vlax-get Obj 'Coordinates)<br/>&nbsp;)<br/>&nbsp;(if (eq ObjName "AcDbPolyline")<br/>&nbsp; (repeat (/ (length TmpLst) 2)<br/>&nbsp;&nbsp; (setq PntLst (cons (list (car TmpLst) (cadr TmpLst)) PntLst)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TmpLst (cddr TmpLst)<br/>&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (repeat (/ (length TmpLst) 3)<br/>&nbsp;&nbsp; (setq PntLst (cons (list (car TmpLst) (cadr TmpLst) (caddr TmpLst)) PntLst)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TmpLst (cdddr TmpLst)<br/>&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;)<br/>&nbsp;(vlax-put Obj 'Coordinates (apply 'append PntLst))<br/>&nbsp;(if (not (eq ObjNme "AcDb3dPolyline"))<br/>&nbsp; (progn<br/>&nbsp;&nbsp; (setq Ubound (1- (length PntLst))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BlgLst (list (* (vla-GetBulge Obj Ubound) -1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SegCnt 0<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (repeat Ubound<br/>&nbsp;&nbsp;&nbsp; (setq BlgLst (cons (* (vla-GetBulge Obj SegCnt) -1) BlgLst)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SegCnt (1+ SegCnt)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setq SegCnt 0)<br/>&nbsp;&nbsp; (foreach memb BlgLst<br/>&nbsp;&nbsp;&nbsp; (vla-SetBulge Obj SegCnt memb)<br/>&nbsp;&nbsp;&nbsp; (setq SegCnt (1+ SegCnt))<br/>&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;)<br/>&nbsp;(vla-Update Obj)<br/>&nbsp;Obj<br/>)
页: [1]
查看完整版本: [求助]我想改变封闭多义线的走向,怎么改呢