Jump to content

create blocks and place them evenly.


jasonle215

Recommended Posts

Hi guys,

 

I'm using autocad 2010 and I'm new to autolisp. I hope you guys could help me with this problem (image below)

 

4.jpg

 

I'm still learning autolisp and I dont know how to create blocks or insert an existing block to specific chosen coordinates. Also, through this problem above could you also please demonstrate how to copy a object (or block) to even space?

Thank you very much!!!

Link to comment
Share on other sites

This should be a start:

 

[b][color=BLACK]([/color][/b]defun c:rectcir [b][color=FUCHSIA]([/color][/b]/ x hx y hy e mx xp xd qt sp[b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq x [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nRectangle X Axis <5000>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]or x [b][color=NAVY]([/color][/b]setq x 5000.[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq hx [b][color=NAVY]([/color][/b]* x 0.5[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq y [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nRectangler Y Axis <250>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]or y [b][color=NAVY]([/color][/b]setq y 250.[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq hy [b][color=NAVY]([/color][/b]* y 0.5[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq e [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nX Axis End Spacer <200>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]or e [b][color=NAVY]([/color][/b]setq e 200.[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq mx [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nX Axis Max Spaces <450>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]or mx [b][color=NAVY]([/color][/b]setq mx 450.[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;CREATE THE BLOCK[/color]
 [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] [color=#2f4f4f]"CENTER"[/color][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]"BLOCK"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 2 [color=#2f4f4f]"CENTER"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 70 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]list 10 0 0 0[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]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 5[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]list 0 -100 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 [b][color=BLUE]([/color][/b]list 0 100 0[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]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 5[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]list 50 -65 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 [b][color=BLUE]([/color][/b]list -50 -65 0[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]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 5[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]list 50 65 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 [b][color=BLUE]([/color][/b]list -50 65 0[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]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"CIRCLE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 1[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]list 0 -65 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 40 20[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]"CIRCLE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 8 [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 1[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 [b][color=BLUE]([/color][/b]list 0 65 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 40 20[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]

[color=#8b4513];;;MAKE THE REECTANGLE[/color]
 [b][color=FUCHSIA]([/color][/b]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 10 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hy[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 11 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hy[b][color=BLUE])[/color][/b] 0[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]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 10 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hy[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 11 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hy[b][color=BLUE])[/color][/b] 0[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]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 10 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hy[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 11 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hy[b][color=BLUE])[/color][/b] 0[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]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 10 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hy[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]cons 11 [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ hx[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hy[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;FIND THE INSERT POINT DATA[/color]
 [b][color=FUCHSIA]([/color][/b]setq xp [b][color=NAVY]([/color][/b]+ [b][color=MAROON]([/color][/b]- hx[b][color=MAROON])[/color][/b] e[b][color=NAVY])[/color][/b]           [color=#8b4513];1st X axis Value[/color]
       xd [b][color=NAVY]([/color][/b]- x e e[b][color=NAVY])[/color][/b]              [color=#8b4513];Total X axis distance[/color]
       qt [b][color=NAVY]([/color][/b]1+ [b][color=MAROON]([/color][/b]fix [b][color=GREEN]([/color][/b]/ xd mx[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]   [color=#8b4513];Qty of spaces[/color]
       sp [b][color=NAVY]([/color][/b]/ xd qt[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]             [color=#8b4513];X axis spacing[/color]

[color=#8b4513];;;CREATE THE INSERTS[/color]
 [b][color=FUCHSIA]([/color][/b]repeat [b][color=NAVY]([/color][/b]1+ qt[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]"INSERT"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 2 [color=#2f4f4f]"CENTER"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]list 10 xp 0 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]setq xp [b][color=MAROON]([/color][/b]+ xp sp[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]

 

Assumptions :

I named the block "CENTER"

The red circles looked to have a radius of 20 ( not diameter )

I centered the rectangle at 0,0,0

 

Alternately :

 

Make the fist INSERT, then (command "_.COPY" (entlast) "" ...

Make the fist INSERT, then (command "_.ARRAY" "_R" (entlast) "" ...

Make the INSERT a single MINSERT

 

Have fun! -David

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...