114
1万
中流砥柱
(defun c:Fld ( / GetBlock GetObjectID PutAttValue InsertBlock AddBlock Itemp BLK BOBJ COLL DOC ENT FBLOCK FTAG OBJ PT RESULT SEED SPC TAG VALUE ) (vl-load-com) ;; Lee Mac ~ 11.05.10 (setq fBlock "Block") ;; Block Name (setq ftag "TAG1") ;; Tag Name (defun GetObjectID ( obj doc ) ;; Lee Mac (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE") ) ) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false ) (itoa (vla-get-Objectid obj)) ) ) (defun PutAttValue ( object tag value ) ;; Lee Mac ~ 05.05.10 (mapcar (function (lambda ( attrib ) (and (eq tag (vla-get-TagString attrib)) (vla-put-TextString attrib value) ) ) ) (vlax-invoke object 'GetAttributes) ) value ) (defun InsertBlock ( Block Name Point ) (if (not (vl-catch-all-error-p (setq result (vl-catch-all-apply (function vla-insertblock) (list Block (vlax-3D-point point) Name 1. 1. 1. 0.) ) ) ) ) result ) ) (defun Itemp ( coll item ) (if (not (vl-catch-all-error-p (setq item (vl-catch-all-apply (function vla-item) (list coll item) ) ) ) ) item ) ) (defun AddBlock ( seed pt / coll name ) (setq coll (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (setq Name ( (lambda ( i ) (while (Itemp coll (strcat seed (itoa (setq i (1+ i)) ) ) ) ) (strcat seed (itoa i)) ) 0 ) ) (list (vla-Add coll (vlax-3D-point pt) name ) name ) ) (setq spc (if (or (eq AcModelSpace (vla-get-ActiveSpace (setq doc (vla-get-ActiveDocument