lijinsong
07.12.2014, 10:52
; 1 specify base point scaling.(defun c:tt() (princ "\n Choose the arrow block") (setq en(entsel)) (if en(progn (setq enn(car en) enpt(getpoint" input scaling point") sfx(getreal" input scaling coefficient: ") ) (vla-getboundingbox (vlax-ename->vla-object enn) 'enpt1 'enpt2) (setq enpt1 (vlax-safearray->list enpt1) enpt2 (vlax-safearray->list enpt2) enmp (mapcar '(lambda(x y)(/(+ x y)2))enpt1 enpt2) endi (distance enpt enmp) enan (angle enpt enmp) szj (ssget) l (sslength szj) n 0 ) (repeat l (setq szjenn(ssname szj n)) (vla-getboundingbox (vlax-ename->vla-object szjenn) 'szjpt1 'szjpt2) (setq szjpt1 (vlax-safearray->list szjpt1) szjpt2 (vlax-safearray->list szjpt2) szjmp (mapcar '(lambda(x y)(/(+ x y)2))szjpt1 szjpt2) szjpt (polar szjmp enan endi) n (1+ n ) ) (vl-cmdf "scale" szjenn "" "non"szjpt sfx ) ) ));2scale same name of Block .(defun c:tt() (SETQ b1 (ENTSEL "\nPlease select the block: ") i 0 hh (getreal"Enter the new scaling coefficient: ") ) (IF b1 (PROGN (SETQ b2 (CAR b1) b3 (ENTGET b2) b4 (ASSOC 0 b3) b5 (CDR b4) ) (IF (= b5 "INSERT") (PROGN (SETQ b6 (ASSOC 2 b3) b7 (CDR b6) b8 (SSGET (LIST b4 b6)) b9 (SSLENGTH b8) ) (alert (strcat b7 " * " (itoa b9))) ) (PRINC "\nObject is not a block!") ) ) (PRINC "\nNo selection block!") ) (repeat b9 (setq bb(ssname b8 i) instp(cdr(assoc 10 (entget bb)))) (command "scale" bb "" "non"instp hh ) (setq i(1+ i)) ) (PRINC))3 “Polygon single line text center” -i do not know why some dwg use it will failure.(defun C:tt() (setq ss (ssget ":E:S" ) en (ssname ss 0 ) vo (vlax-ename->vla-object en) ) (vlax-invoke-method vo 'GetBoundingBox 'MinPoint 'MaxPoint ) (setq p1 (vlax-safearray->list MinPoint) P2 (vlax-safearray->list MaxPoint ) mp (mapcar'(lambda(x y)(/(+ x y)2))p1 p2) ) (command "-boundary" "non"p1 "" ) (setq PL (entlast) vo(vlax-ename->vla-object PL) ) (vlax-invoke-method vo 'GetBoundingBox 'MinPoint 'MaxPoint ) (setq p1(vlax-safearray->list MinPoint) P2(vlax-safearray->list MaxPoint) mpL (mapcar'(lambda(x y)(/(+ x y)2))p1 p2) ) (command "_move" ss"" "non"mp "non"mpL))