Jump to content

Is there a way to edit all blocks at once?


skipsophrenic

Recommended Posts

Hi,

 

Been looking through past threads to see if there was a lisp out there that lets you select every block reference or block and then put all their components on to layer 0 and color to by layer?

 

Sorry if this has been asked before but i can't find the thread if it has.

Link to comment
Share on other sites

Hi,

 

Been looking through past threads to see if there was a lisp out there that lets you select every block reference or block and then put all their components on to layer 0 and color to by layer?

 

Sorry if this has been asked before but i can't find the thread if it has.

search blast.lsp - that is what I use. Or you can use the SETBYLAYER command. I dunno if it's in 2008, but it is in 2009 and up.

Link to comment
Share on other sites

Then again,

 

Is there something already done that takes the attributes over to the layer too?

 

As am still having to go back and edit their properties manually, and with over 50 attributes per drawing it's rather time consuming.

Link to comment
Share on other sites

try this out - from cadcorner

 

;;;   File Name: Layerfix.LSP 
;;;   Description:  Changes the block definitions to BYLAYER .  Will skip all
;;;                 XREF & XREF dependent blocks. 
;;;
;;;   Global Variables:  None
;;;
;;;   Local Variables:  Self-explanatory
;;;
;;;   Program Arguments:  None
;;;   Subroutines/Functions Defined or Called:  None
;;;
;;;***************************************************************************


(defun LAYERFIX (/ BLKDATA NEWCOLOR NEWCOLOR NEWLAYER LAYER XREFFLAG XDEPFLAG BLKENTNAME
                    COUNT ENTDATA ENTNAME ENTTYPE OLDCOLOR OLDLAYER SSCOUNT SS)
  
  (command ".undo" "group")
  (setq BLKDATA (tblnext "BLOCK" t))
  (setq NEWCOLOR (cons 62 256))  ;this will set 62 (color) to bylayer
;   (setq NEWLAYER (cons 8 "0"))  ;this will set 8 (layer) to 0
  ; While there is an entry in the block table to process, continue
  (while BLKDATA
     (prompt "\nRedefining colors for block: ")
     (princ (cdr (assoc 2 BLKDATA)))
     ; Check to see if block is an XREF or is XREF dependent
     (setq XREFFLAG (assoc 1 BLKDATA))
     (setq XDEPFLAG (cdr (assoc 70 BLKDATA)))
     ; If block is not XREF or XREF dependent, i.e., regular block, then proceed.
     (if (and (not XREFFLAG) (/= (logand XDEPFLAG 32) 32))
        (progn
           (setq BLKENTNAME (cdr (assoc -2 BLKDATA)))
           (setq COUNT 1)
           (terpri)
           ; As long as we haven't reached the end of the block's defintion, get the data
           ; for each entity and change its color assignment to BYLAYER.
           (while BLKENTNAME
              (princ COUNT)
              (princ "\r")
              (setq ENTDATA (entget BLKENTNAME)); get entities data 
              (setq OLDCOLOR (assoc 62 ENTDATA))  ;get entities old color value
              (if OLDCOLOR                         ; if value exist (null = bylayer)
                 (entmod (subst newcolor oldcolor ENTDATA)) ; substitute old color to byblock
                 (entmod (cons newcolor ENTDATA))      ; modify ent data w/ byblock values
              )
              (setq BLKENTNAME (entnext BLKENTNAME)) ;if attributes exist, then edit next one
              (setq COUNT (+ COUNT 1));
           ) ;end while for attribute trap
        ) ;progn
        (progn
           (princ "    XREF...skipping!")
        ) ;progn
     );end if not an Xref
     (setq BLKDATA (tblnext "BLOCK")) ;next block please
  ) ;end while loop of blk data available to edit
  (command ".undo" "end")
  (command ".regen")
  (PROMPT "\nDone... ")
  (princ)
)
(LAYERFIX)

Works on all blocks except xref dependent.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...