[求助]我想改变封闭多义线的走向,怎么改呢
undefined回复:(zheng123)[求助]我想改变封闭多义线的走向,...
比如,多义线原来的方向是逆时针的, 现在想将它改成顺时针方向的,怎么改呢,还请各位大虾帮忙。<br/> (defun C:REVPLINE(/ obj)<br/> (setq obj (vlax-ename->vla-object (car (entsel "\nSelect a polyline: "))))<br/> (VxRevPline obj)<br/> (princ)<br/>)<br/>; Reverse vertex order of Polylines.<br/>; Copyright:<br/>; ©2004 MENZI ENGINEERING GmbH, Switzerland<br/>; Arguments :<br/>; Obj = Pline object <br/>; Return :<br/>; > Pline object reversed <br/>; Notes:<br/>; - Credits to Angeliki Anastasopoulou<br/>; <br/>(defun VxRevPline (Obj / BlgLst ObjName PntLst SegCnt TmpLst Ubound)<br/> (setq ObjName (vlax-get Obj 'ObjectName)<br/> TmpLst (vlax-get Obj 'Coordinates)<br/> )<br/> (if (eq ObjName "AcDbPolyline")<br/> (repeat (/ (length TmpLst) 2)<br/> (setq PntLst (cons (list (car TmpLst) (cadr TmpLst)) PntLst)<br/> TmpLst (cddr TmpLst)<br/> )<br/> )<br/> (repeat (/ (length TmpLst) 3)<br/> (setq PntLst (cons (list (car TmpLst) (cadr TmpLst) (caddr TmpLst)) PntLst)<br/> TmpLst (cdddr TmpLst)<br/> )<br/> )<br/> )<br/> (vlax-put Obj 'Coordinates (apply 'append PntLst))<br/> (if (not (eq ObjNme "AcDb3dPolyline"))<br/> (progn<br/> (setq Ubound (1- (length PntLst))<br/> BlgLst (list (* (vla-GetBulge Obj Ubound) -1))<br/> SegCnt 0<br/> )<br/> (repeat Ubound<br/> (setq BlgLst (cons (* (vla-GetBulge Obj SegCnt) -1) BlgLst)<br/> SegCnt (1+ SegCnt)<br/> )<br/> )<br/> (setq SegCnt 0)<br/> (foreach memb BlgLst<br/> (vla-SetBulge Obj SegCnt memb)<br/> (setq SegCnt (1+ SegCnt))<br/> )<br/> )<br/> )<br/> (vla-Update Obj)<br/> Obj<br/>)
页:
[1]