Arizona Posted April 18, 2012 Posted April 18, 2012 When I say "Global" I mean every instance in the drwaing, regardless of model/paper space. Example: I have a roadway drawing with 12 Layouts. The Title Blocks are in the layouts (in paperspace). The text in the titleblocks (sheet name, dwg name, drwn by, date, revisions, etc), are attributed blocks. I need to add the same revision to every sheet. How can I globally do this, all in one shot. Seems like something I should be able to do. The old command line AttEdit command does not do it. It only works on blocks in the current space. Find could do it if there was something in them but the attributes are empty. There's gotta be a way. Right? Quote
Dadgad Posted April 18, 2012 Posted April 18, 2012 Lee Mac comes through again, would we expect any less? http://www.lee-mac.com/macatt.html scroll down to the description of the EDITOR function. If you haven't been to Lee's website and looked through his work, you certainly should. Lots of great stuff there! Here's to Lee! Quote
Arizona Posted April 18, 2012 Author Posted April 18, 2012 Wow. All I have for that is - Wow. That was sweet. Already downloaded, installed and ran it on my job. Thanks Dad. LeeMac - once again, You Da Man! Quote
BIGAL Posted April 19, 2012 Posted April 19, 2012 here is a hard coded version 1 task could be changed for revision etc ; changes to issued for construction : thanks to lee mac for original code (vl-load-com) ; 1. Get current date in mm/dd/yy format. (defun ddmmyy (/ x today) (setvar "cmdecho" 0) (setq x (getvar "CDATE")) ; get current date (setq today ( rtos x 2 4)) ; convert to a string (setq date (strcat (substr today 7 2) "." (substr today 5 2) "." (substr today 3 2) )) ) (setq oldtag1 "DRAWING_STATUS") ;attribute tag name (setq newstr1 "ISSUED FOR CONSTRUCTION") (setq oldtag2 "REV_NO") ;attribute tag name (setq newstr2 "0") (setq ss1 (ssget "x" '((0 . "INSERT") (2 . "Yourtitlblockname")))) (setq inc (sslength ss1)) (repeat inc (foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 (setq inc (1- inc)) )) 'getattributes) (if (= oldtag1 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr1) ) ; end if (if (= oldtag2 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr2) ) ; end if ) ; end for ) ;end repeat (setq oldtag1 "REV-NO") (setq newstr1 "0") (ddmmyy) (setq oldtag2 "DATE") (setq newstr2 date) (setq oldtag3 "AMENDMENT") (setq newstr3 "ISSUED FOR CONSTRUCTION") (setq ss2 (ssget "x" '((0 . "INSERT") (2 . "REVTABLE")))) (setq inc (sslength ss2)) (repeat inc (foreach att (vlax-invoke (vlax-ename->vla-object (ssname ss2 (setq inc (1- inc)))) 'getattributes) (if (= oldtag1 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr1) ) (if (= oldtag2 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr2) ) (if (= oldtag3 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr3) ) ) ) (setq ss1 nil) (princ) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.