Jump to content

Arrange a block in specified area


K P Senthil Kumar

Recommended Posts

hi gud afternoon

i need help regarding this.

Arranging single a block in specified area with equally divided fixture points in the select object, which i shown in drawing.

 

for example i want 2 calculate how many fixture in that area(may be rectangular r polyline ect...).

 

regards,

kpsk

dwg.dwg

Link to comment
Share on other sites

There are lots of ways to approach this.

 

What are your known parameters?

 

Minimum / maximum spacings between fixtures?

Number of fixtures per sq ft?

Room size?

 

 

-David

Link to comment
Share on other sites

hi David ,

actually X & Y value should given by manually.

For example one fixtures will cover 12 sqm (i.e 4 x 3 = 12 , in this x =3 & Y = 4).

so that i can calculate hw many fixture can occupy in that room.

 

regards,

kpsk

Link to comment
Share on other sites

If the fixture coverage is a square I'd try something like this:

 

[color=#8b4513];++++++++++++ Get RECTANGLE +++++++++++++++++++++++++[/color]
[b][color=BLACK]([/color][/b]defun getrect [b][color=FUCHSIA]([/color][/b]/ p1 p2[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq p1 [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\n1st Corner:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq p2 [b][color=NAVY]([/color][/b]getcorner p1 [color=#2f4f4f]"\n2nd Corner:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq ll [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]min [b][color=GREEN]([/color][/b]car p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]min [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]caddr p1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
       ur [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]max [b][color=GREEN]([/color][/b]car p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]max [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
                [b][color=MAROON]([/color][/b]caddr p1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
       lr [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]car ur[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]cadr ll[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]caddr p1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
       ul [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]car ll[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]cadr ur[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]caddr p1[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]

[color=#8b4513];++++++++++++ Make A Fixture Block ++++++++++++++++++[/color]
[b][color=BLACK]([/color][/b]defun checkblk [b][color=FUCHSIA]([/color][/b]/ sq[b][color=FUCHSIA])[/color][/b]
[b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"BLOCK"[/color] [color=#2f4f4f]"FIXT"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]setq sq [b][color=MAROON]([/color][/b]* [b][color=GREEN]([/color][/b]sqrt la[b][color=GREEN])[/color][/b] 0.5[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]"FIXT"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]list 10 0 0 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 70 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]"CIRCLE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]list 10 0 0 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 40 1[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 39 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 6 [color=#2f4f4f]"BYLAYER"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 256[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 6 [color=#2f4f4f]"BYLAYER"[/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 39 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 2[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 10 [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 11 [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] 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 6 [color=#2f4f4f]"BYLAYER"[/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 39 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 2[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 10 [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 11 [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] 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 6 [color=#2f4f4f]"BYLAYER"[/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 39 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 2[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 10 [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 11 [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] 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 6 [color=#2f4f4f]"BYLAYER"[/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 39 0[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 62 2[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 10 [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b]
                   [b][color=GREEN]([/color][/b]list 11 [b][color=BLUE]([/color][/b]- sq[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ sq[b][color=BLUE])[/color][/b] 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]"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]

[color=#8b4513];++++++++++++ Main Routine ++++++++++++++++++[/color]
[b][color=BLACK]([/color][/b]defun c:fixt [b][color=FUCHSIA]([/color][/b]/ la a e q sq xq yq xs ys[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq la [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nArea of Coverage per Fixture <12>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]or la [b][color=NAVY]([/color][/b]setq la 12.[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]getrect[b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]checkblk[b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]setq a [b][color=NAVY]([/color][/b]* [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]car lr[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]cadr ul[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
       e [b][color=NAVY]([/color][/b]/ a la[b][color=NAVY])[/color][/b]
       q [b][color=NAVY]([/color][/b]fix [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]zerop [b][color=BLUE]([/color][/b]rem e 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] e [b][color=GREEN]([/color][/b]1+ [b][color=BLUE]([/color][/b]fix e[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      sq [b][color=NAVY]([/color][/b]* [b][color=MAROON]([/color][/b]sqrt la[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      xq [b][color=NAVY]([/color][/b]1+ [b][color=MAROON]([/color][/b]fix [b][color=GREEN]([/color][/b]/ [b][color=BLUE]([/color][/b]- [b][color=RED]([/color][/b]car lr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]car ll[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] sq[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      yq [b][color=NAVY]([/color][/b]1+ [b][color=MAROON]([/color][/b]fix [b][color=GREEN]([/color][/b]/ [b][color=BLUE]([/color][/b]- [b][color=RED]([/color][/b]cadr ul[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cadr ll[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] sq[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      xs [b][color=NAVY]([/color][/b]/ [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]car lr[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] xq[b][color=NAVY])[/color][/b]
      ys [b][color=NAVY]([/color][/b]/ [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]cadr ul[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] yq[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]"INSERT"[/color][b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]cons 2 [color=#2f4f4f]"FIXT"[/color][b][color=MAROON])[/color][/b]
                 [b][color=MAROON]([/color][/b]list 10 [b][color=GREEN]([/color][/b]+ [b][color=BLUE]([/color][/b]car ll[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]* xs 0.5[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                          [b][color=GREEN]([/color][/b]+ [b][color=BLUE]([/color][/b]cadr ll[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]* ys 0.5[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] 0[b][color=MAROON])[/color][/b]
                 [b][color=MAROON]([/color][/b]cons 45 ys[b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]cons 44 xs[b][color=MAROON])[/color][/b]
                 [b][color=MAROON]([/color][/b]cons 71 yq[b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]cons 70 xq[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

  [b][color=FUCHSIA]([/color][/b]princ [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"\nEfficency - Minimun Req'd="[/color] [b][color=MAROON]([/color][/b]itoa q[b][color=MAROON])[/color][/b]
                             [color=#2f4f4f]"\nQuantity Used="[/color] [b][color=MAROON]([/color][/b]itoa [b][color=GREEN]([/color][/b]* xq yq[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]

 

 

If the coverage is round or rectangular shape, then you will have to do some different calculations. -David

Link to comment
Share on other sites

Hi David.

 

Really a very great Lisp program, I could not leave the Forum without giving you my best regards.

 

I was looking also for a program as best as yours, but it needs some changes to suit my needs.

 

So is there any problem if I tried to modify it according to what I need ?

 

Although I may can and I may can not.

 

Best Regards,

Tharwat

Link to comment
Share on other sites

Hi david,

Nice one.

if possible some changes i need

output block by minsert we cant xplode and move one or some fixture.

also need block should be selected one (user selection)

 

user inputs require?

1.area cover

2.select block

3.select area boundary

 

Thanks in advance

Regards

mani:D

Link to comment
Share on other sites

Hi David.

So is there any problem if I tried to modify it according to what I need ?

 

Although I may can and I may can not.

 

Best Regards,

Tharwat

 

No problem at all if you modify it. Have fun and ping back if you need help. -David

Link to comment
Share on other sites

Hi david,

Nice one.

if possible some changes i need

output block by minsert we cant xplode and move one or some fixture.

also need block should be selected one (user selection)

 

user inputs require?

1.area cover

2.select block

3.select area boundary

 

Thanks in advance

Regards

mani:D

 

Selecting a block is a simple change.

 

Going by a boundary line would be a very complex routine. Rectangles an be addressed easily, Irregular PLINES would a real challenge. -David

Link to comment
Share on other sites

hi,:)

yes you said well, but i asked boundary means its rectangular only, so the rectangular should be selectable (some times we can't easily draw rectangle in such a big drawings) so select rec? option most welcome..................

Thanks

Mani

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