MR MAN Posted April 6, 2009 Posted April 6, 2009 is there any way to replace circles shape on layer with block? Quote
David Bethel Posted April 6, 2009 Posted April 6, 2009 If is is a CIRCLE entity, the you can use the following: [b][color=BLACK]([/color][/b]defun c:cir2ins [b][color=FUCHSIA]([/color][/b]/ lb bn ss i en ed nd[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq lb [b][color=NAVY]([/color][/b]getvar [color=#2f4f4f]"INSNAME"[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not bn[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq bn [b][color=MAROON]([/color][/b]getstring [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\nBLOCK To Insert <"[/color] lb [color=#2f4f4f]">: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= bn [color=#2f4f4f]""[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq bn lb[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]snvalid bn[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] bn[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]and [b][color=BLUE]([/color][/b]snvalid bn[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]findfile [b][color=RED]([/color][/b]strcat bn [color=#2f4f4f]".DWG"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_.INSERT"[/color] bn[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]command[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]T [b][color=GREEN]([/color][/b]setq bn nil lb [color=#2f4f4f]""[/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]while [b][color=NAVY]([/color][/b]not ss[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSelect CIRCLEs To Convert To INSERTs..."[/color][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"CIRCLE"[/color][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]setq i [b][color=NAVY]([/color][/b]sslength ss[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]minusp [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1- i[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]setq en [b][color=MAROON]([/color][/b]ssname ss i[b][color=MAROON])[/color][/b] ed [b][color=MAROON]([/color][/b]entget en[b][color=MAROON])[/color][/b] nd [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 10 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 2 bn[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"INSERT"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]foreach g '[b][color=MAROON]([/color][/b]6 8 39 48 62 210[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]assoc g ed[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cons g [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc g ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] nd[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]entmake [b][color=MAROON]([/color][/b]reverse nd[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]entdel en[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] If it is SHAPE entity named Circle, then it will take some modifying the (ssget) filters. -David Quote
marsupiale Posted April 11, 2017 Posted April 11, 2017 If is is a CIRCLE entity, the you can use the following: [b][color=BLACK]([/color][/b]defun c:cir2ins [b][color=FUCHSIA]([/color][/b]/ lb bn ss i en ed nd[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq lb [b][color=NAVY]([/color][/b]getvar [color=#2f4f4f]"INSNAME"[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not bn[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq bn [b][color=MAROON]([/color][/b]getstring [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\nBLOCK To Insert <"[/color] lb [color=#2f4f4f]">: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= bn [color=#2f4f4f]""[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq bn lb[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]snvalid bn[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] bn[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]and [b][color=BLUE]([/color][/b]snvalid bn[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]findfile [b][color=RED]([/color][/b]strcat bn [color=#2f4f4f]".DWG"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_.INSERT"[/color] bn[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]command[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]T [b][color=GREEN]([/color][/b]setq bn nil lb [color=#2f4f4f]""[/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]while [b][color=NAVY]([/color][/b]not ss[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSelect CIRCLEs To Convert To INSERTs..."[/color][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"CIRCLE"[/color][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]setq i [b][color=NAVY]([/color][/b]sslength ss[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]minusp [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1- i[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]setq en [b][color=MAROON]([/color][/b]ssname ss i[b][color=MAROON])[/color][/b] ed [b][color=MAROON]([/color][/b]entget en[b][color=MAROON])[/color][/b] nd [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 10 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 2 bn[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"INSERT"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]foreach g '[b][color=MAROON]([/color][/b]6 8 39 48 62 210[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]assoc g ed[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cons g [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc g ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] nd[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]entmake [b][color=MAROON]([/color][/b]reverse nd[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]entdel en[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] If it is SHAPE entity named Circle, then it will take some modifying the (ssget) filters. -David If i have already the block in the drawing and i would not insert the name by the keyboard, how could i change to set this block as the replacement? Quote
marsupiale Posted April 11, 2017 Posted April 11, 2017 and if it is possible, how i can automatic select all ? Quote
David Bethel Posted April 11, 2017 Posted April 11, 2017 How would you determine the BLOCKs name ? -David Quote
marsupiale Posted April 11, 2017 Posted April 11, 2017 and if it is possible, how i can automatic select all ? ... I mean, select all circle, and better, on layer "holes"? Finally explode all blocks Quote
BIGAL Posted April 12, 2017 Posted April 12, 2017 Try the following changes, note the block name and layer name can be case sensitive.. (setq bn (getstring (strcat "\nBLOCK To Insert <" lb ">: "))) [color=red](setq bn "WELD")[/color] (setq ss (ssget '((0 . "CIRCLE"))))) [color=red](setq ss (ssget "X" '((0 . "CIRCLE")(8 . "holes"))))[/color] (entdel en)) [color=red](entdel en)[/color] [color=red](command "explode" "L"))[/color] Quote
marsupiale Posted April 12, 2017 Posted April 12, 2017 Big...big....bigal!!!! Great ! Works 100%%%% thanks a lot! Quote
BIGAL Posted April 13, 2017 Posted April 13, 2017 No worries thank David he did most of the work. 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.