Message 1 of 4

Not applicable
05-25-2016
09:21 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello - I have a number of drawings that contain numerous instances of a block named TAG-PART. This block contains a number of attributes, one of which is FRAME-QTY.
What I would like to do is to link the value of this attribute in all instances of the block to a custom property in the drawing called QUANTITY.
Right now I have the following code that reads the value of QUANTITY and updates the attribute value, but does not link it.
Any help would be appreciated.
;;============================================================================== ;; Definition: Program (defun c:QtyLinkSetup () ;;============================================================================== ;; Load ActiveX (vl-load-com) ;;============================================================================== ;; Definition: blkset ;; Args: blname ;; Example: (blname "11x17_Fabrication_TB-2013") (defun blkset (blname) (if (not (setq sset (ssget "X" (list (cons 2 blname))))) (setq sset (ssadd)) );end if (if (setq ss-dyn (ssget "X" (list (cons 2 "`*U*")))) (progn (setq num 0) (repeat (sslength ss-dyn) (setq ent (ssname ss-dyn num)) (setq effname (vla-get-EffectiveName (vlax-ename->vla-object ent))) (if (= blname effname) (ssadd ent sset) );end if (setq num (1+ num)) );end repeat );end progn );end if sset );end defun ;;============================================================================== ;; Get Quantity value in drawing properties custom tab (setq acadObject (vlax-get-acad-object) acadDocument (vla-get-ActiveDocument acadObject) suminfo (vlax-get-Property acadDocument 'SummaryInfo) );end setq (vla-getCustomByKey suminfo "QUANTITY" 'qty) ;;============================================================================================== ;; Get "TAG-PART" blocks and link quantity value to drawing custom properties quantity (setq blname "TAG-PART" sset nil ss1 (blkset blname) memb 0 );end setq (if ss1 (repeat (sslength ss1) (progn (setq entname (vlax-ename->vla-object (ssname ss1 memb)) entlist (vlax-safearray->list (vlax-variant-value (vla-getattributes entname))) );end setq (vla-put-textstring (nth 5 entlist) qty) (setq memb (1+ memb)) );end progn );end repeat );end if ;;============================================================================== ;; End routine (princ) );end progn
Solved! Go to Solution.