Sweety Posted November 9, 2010 Posted November 9, 2010 Hello everybody. How to change the properties of the selected Block . Things like changing colors for specific elements and Line Types and Weights and so on ... (if (setq a (car (entsel "\n Please Select a Block HONEY ? :"))) (and what else .... ........ Many thanks Gentlemen Quote
BlackBox Posted November 9, 2010 Posted November 9, 2010 (edited) Look into the entnext function. Edited November 9, 2010 by BlackBox Typo Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 Hello Renderman. I guess that would be after entring the Block definition by nentsel ( I am not that sure) . Agree ? Quote
BlackBox Posted November 9, 2010 Posted November 9, 2010 Hello Renderman. I guess that would be after entring the Block definition by nentsel ( I am not that sure) . Agree ? Simple example: (defun c:FOO (/ ss eName eData) (if (setq ss (ssget ":S:E" '((0 . "INSERT") (66 . 1)))) (progn (setq eName (ssname ss 0)) (setq eData (entget eName)) (while (and (/= (cdr (assoc 0 eData)) "ATTRIB") (/= (cdr (assoc 2 eData)) "[color=red]attribute_tag_name_here[/color]")) (progn (setq eName (entnext eName)) (setq eData (entget eName))) (progn ;; ... Do something else. ))) (prompt "\n <!> Nothing selected <!> ")) (princ)) Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 Thanks a lot . So how to change the Line Type or Line Weight of a circle in a block ? Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 Actually it's a normal block , no attributes are included at all . Quote
alanjt Posted November 9, 2010 Posted November 9, 2010 You can either step through the block definition and change any properties or use nentsel/nentselp to select an individual object within the block to edit. Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 You can either step through the block definition and change any properties or use nentsel/nentselp to select an individual object within the block to edit. That's exactly what I meant. But this issue is very diffecult to me to make , Have you written any codes about the same thread ? Thanks Quote
alanjt Posted November 9, 2010 Posted November 9, 2010 That's exactly what I meant. But this issue is very diffecult to me to make , Have you written any codes about the same thread ? Thanks Exactly what? I have you two options. Single selection (nentsel/nentselp) works exactly the same as if you were editing an object you selected with entsel. Quickie vla example (change color of object to 5 - will update all blocks after regen): (vla-put-color (vlax-ename->vla-object (car (nentsel))) 5) Quickie entmod example (same thing): (if (setq e (nentsel)) (entmod (if (setq a (assoc 62 (setq d (entget (car e))))) (subst (cons 62 5) a d) (append d (list (cons 62 5))) ) ) ) Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 That's really great Mr Alanjt. So is it also possible to add entities to the Block , things like texts, circles , ans so on ..... please ? Many thanks gentleman Alan. Quote
alanjt Posted November 9, 2010 Posted November 9, 2010 Yes. Lee did something a while back that would allow the user to add objects to an existing block. Quote
Sweety Posted November 9, 2010 Author Posted November 9, 2010 Yes. Lee did something a while back that would allow the user to add objects to an existing block. O' yeah so nice , I hope that Lee would come up soon to discuss the issue with us too. Thanks a lot. Quote
BIGAL Posted November 10, 2010 Posted November 10, 2010 search here for blockedit.lsp its a good starting point to make changes to a block Quote
Sweety Posted November 10, 2010 Author Posted November 10, 2010 search here for blockedit.lsp its a good starting point to make changes to a block I could not find it , So could you please upload the link ? Thank you so much. Quote
David Bethel Posted November 10, 2010 Posted November 10, 2010 To modify the block, maybe like this: [b][color=BLACK]([/color][/b]defun c:blk-mod [b][color=FUCHSIA]([/color][/b]/ input cl bl val lt la tk cr i ss en bn bl nb tdef fe fd[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]and cl [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\n"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]prin1 cl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]initget [color=#2f4f4f]"6 8 39 62"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq input [b][color=GREEN]([/color][/b]getkword [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"\nWhat Properties Do You Wish To Change - "[/color] [color=#2f4f4f]"[b][color=RED]([/color][/b]6[b][color=RED])[/color][/b]Linetype [b][color=RED]([/color][/b]8[b][color=RED])[/color][/b]Layer [b][color=RED]([/color][/b]39[b][color=RED])[/color][/b]Thickness [b][color=RED]([/color][/b]62[b][color=RED])[/color][/b]Color: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]and input [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]member input cl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq cl [b][color=GREEN]([/color][/b]cons input cl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]foreach p cl [b][color=NAVY]([/color][/b]setq val nil[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= p [color=#2f4f4f]"6"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not val[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]snvalid val[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]or [b][color=TEAL]([/color][/b]= [b][color=OLIVE]([/color][/b]strcase val[b][color=OLIVE])[/color][/b] [color=#2f4f4f]"BYLAYER"[/color][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]tblsearch [color=#2f4f4f]"LTYPE"[/color] val[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq val [b][color=RED]([/color][/b]getstring [color=#2f4f4f]"\nNew Linetype For All Entities: "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq lt [b][color=BLUE]([/color][/b]cons 6 [b][color=RED]([/color][/b]strcase val[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= p [color=#2f4f4f]"8"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not val[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]snvalid val[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq val [b][color=RED]([/color][/b]getstring [color=#2f4f4f]"\nNew Layer For All Entities: "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq la [b][color=BLUE]([/color][/b]cons 8 [b][color=RED]([/color][/b]strcase val[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= p [color=#2f4f4f]"39"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]initget 1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq val [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNew Thickness For All Entities: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq tk [b][color=BLUE]([/color][/b]cons 39 val[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= p [color=#2f4f4f]"62"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not val[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]> val 256[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]< val 0[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]initget 5[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq val [b][color=RED]([/color][/b]getint [color=#2f4f4f]"\nNew Color Thickness For All Entities 0-255: "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq cr [b][color=BLUE]([/color][/b]cons 62 val[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq i -1 ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1+ i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq bn [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 2 [b][color=RED]([/color][/b]entget en[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]member bn bl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq bl [b][color=BLUE]([/color][/b]cons bn bl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]foreach b bl [b][color=NAVY]([/color][/b]setq tdef [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] b[b][color=MAROON])[/color][/b] fe [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc -2 tdef[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]entmake tdef[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while fe [b][color=MAROON]([/color][/b]setq fd [b][color=GREEN]([/color][/b]entget fe[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]= [color=#2f4f4f]"INSERT"[/color] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 fd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq nb [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 2 fd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]member nb bl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq bl [b][color=BLUE]([/color][/b]append bl [b][color=RED]([/color][/b]list nb[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq fe [b][color=GREEN]([/color][/b]entnext fe[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]foreach b bl [b][color=NAVY]([/color][/b]setq tdef [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] b[b][color=MAROON])[/color][/b] fe [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc -2 tdef[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]entmake tdef[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while fe [b][color=MAROON]([/color][/b]setq fd [b][color=GREEN]([/color][/b]entget fe[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"8"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]subst la [b][color=RED]([/color][/b]assoc 8 fd[b][color=RED])[/color][/b] fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"6"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]assoc 6 fd[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]subst lt [b][color=RED]([/color][/b]assoc 6 fd[b][color=RED])[/color][/b] fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"6"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]assoc 6 fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]append fd [b][color=RED]([/color][/b]list lt[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"39"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]assoc 39 fd[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]subst tk [b][color=RED]([/color][/b]assoc 39 fd[b][color=RED])[/color][/b] fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"39"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]assoc 39 fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]append fd [b][color=RED]([/color][/b]list tk[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"62"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]assoc 62 fd[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]subst cr [b][color=RED]([/color][/b]assoc 62 fd[b][color=RED])[/color][/b] fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]member [color=#2f4f4f]"62"[/color] cl[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]assoc 62 fd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq fd [b][color=BLUE]([/color][/b]append fd [b][color=RED]([/color][/b]list cr[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake fd[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq fe [b][color=GREEN]([/color][/b]entnext fe[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"ENDBLK"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] -David Quote
pBe Posted November 10, 2010 Posted November 10, 2010 (edited) I found this one a long time ago... Cant even remember where Its very usefull with Blocks ... in our office we have a very strict rule of entities should always be "BYLAYER" i.e (lientype, lineweight ...)which i think is the whole idea of layers (defun C:FIXBLKS (/ ELST ENAM ESEL BNAM FLST) (vl-load-com) (setq ESEL (entsel "\nSelect block: ") ENAM (car ESEL) ELST (entget ENAM) BNAM (cdr (assoc 2 ELST)) FLST nil ) (fix1 BNAM) (vl-cmdf "regen") (prin1) ) (defun FIX1 (BNAM / BENAM) (if (not (member BNAM FLST)) (progn (setq FLST (cons BNAM FLST) BENAM (tblobjname "block" BNAM) ) (while (setq BENAM (entnext BENAM)) ;(print (entget BENAM)) (if (= (cdr (assoc 0 (entget BENAM))) "INSERT") (fix1 (cdr (assoc 2 (entget BENAM)))) (vla-put-color (vlax-ename->vla-object BENAM) 256) ) ) ) ) ) It made used of recursive programming, what it does is change every color of entity to "BYLAYER" I used this and modify it for half a dozen routines.... Hope this helps . Cheers to the Author Edited November 10, 2010 by pBe fat fingers syndrome Quote
Sweety Posted November 10, 2010 Author Posted November 10, 2010 This would be more than enough to change Block color to By Layer .... (defun C:BLk-col (/ e) (vl-load-com) (setq e (car (entsel "\nSelect block: "))) (vla-put-color (vlax-ename->vla-object e ) 256) (princ) ) Quote
pBe Posted November 10, 2010 Posted November 10, 2010 This would be more than enough to change Block color to By Layer .... (defun C:BLk-col (/ e) (vl-load-com) (setq e (car (entsel "\nSelect block: "))) (vla-put-color (vlax-ename->vla-object e ) 256) (princ) ) Not even close SWEETY... it's more than what you think Look at the code Quote
BlackBox Posted November 10, 2010 Posted November 10, 2010 ... what it does is change every color of entity to "BYLAYER" I used this and modify it for half a dozen routines.... ... Or since you're using 2009, you could just use the ._setbylayer command. :wink: Quote
pBe Posted November 10, 2010 Posted November 10, 2010 ... Or since you're using 2009, you could just use the ._setbylayer command. :wink: thats right.. but that code also works with xref 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.