19
124
105
初露锋芒
使用道具 举报
32
2722
2666
后起之秀
(vl-load-com) (setq *ActiveDocument* (vla-get-ActiveDocument (vlax-get-acad-object) ) ;_ end of vla-get-ActiveDocument) ;_ end of setq(setq *ModelSpace* (vla-get-ModelSpace *ActiveDocument* ) ;_ end of vla-get-ModelSpace) ;_ end of setq(setq *AcadBlock* (vla-get-blocks *ActiveDocument* ) ;_ end of vla-get-blocks) ;_ end of setq;;;Creat Num block with attribute(defun Creat_Num_block (TextHight radius / cirPnt blockObj circleObj attributeObj ) (setq cirPnt (list radius radius 0.0)) (setq blockObj (vla-add *AcadBlock* (vlax-3d-point cirPnt) "num" )circleObj (vla-AddCircle blockObj (vlax-3d-point cirPnt) radius )attributeObj (vla-AddAttribute blockObj TextHight acAttributeModeVerify "" (vlax-3d-point cirPnt) "nums" "" ) ) (vla-put-Alignment attributeObj acAlignmentMiddle) (if (> (setq v (distof (substr (getvar "acadver") 1 3))) 16.2) (vla-put-TextAlignmentPoint attributeObj (vlax-3d-point cirPnt) ) ) (vla-Update attributeObj))(defun draw_leader (pt1 pt2 / leaderobj) ;draw leader (command "leader" pt1 pt2 "f" "st" "f" "a" "" "" "n") (setq leaderobj (vlax-ename->vla-object (entlast))) (vla-put-ArrowheadType leaderobj acArrowDotSmall) (vla-Update leaderobj) leaderobj);;;set Attributes(defun SetAtts (Obj Lst / AttVal) (mapcar '(lambda (Att) (if (setq AttVal (cdr (assoc (vla-get-TagString Att) Lst))) (vla-put-TextString Att AttVal) ) ) (vlax-invoke Obj "GetAttributes") ) (vla-update Obj) (princ));;;Get numbers of block reference Object in ModelSpace(defun Get_blkRef_Num (blkRef_name / count objEnt) (setq count 0) (vlax-for objEnt *ModelSpace* (if (equal (vla-get-ObjectName objEnt) "AcDbBlockReference") (progn (if (equal (vla-get-Name objEnt) blkRef_name) (setq count (1+ count)) ) ) ) ) count);;;check if have "num" block exist(defun check_num_block (/) (if (ssget "X" '((0 . "INSERT") (2 . "num") ) ) T nil ));;;--------------------------------------------------------------------;;;; Function: set-params-obj ;;;; ;;;; Description: This function sets the parameters required ;;;; to associate a dimension object . ;;;; ;;;; Arguments: ;;;; vla-blk_bef = a valid vla blk_bef object. ;;;; vla-leader = a valid vla leader object. ;;;; ;;;; Returned Value: coordinates to the leader object. ;;;; ;;;; Usage: ;;;; (set-params-obj ;;;; vla-blk_bef vla-leader ;