TheSwamp

CAD Forums => CAD General => Dynamic Blocks => Topic started by: jbuzbee on January 17, 2008, 10:37:36 AM

Title: Arc Radius
Post by: jbuzbee on January 17, 2008, 10:37:36 AM
Well, I searched and didn't see anything.

What I'm attempting is to creat a dynamic block for theater seating.  I need to adjust the length of the arc, the radius of the arc, and then array the seats along the arc.  Any thoughts?

Thanks.

(http://www.studio2405.com/jdb/theaterseats.png)
Title: Re: Arc Radius
Post by: Guest on January 17, 2008, 10:56:21 AM
Oy!  Sounds like a job for the MEASURE command instead.
Title: Re: Arc Radius
Post by: mjfarrell on January 17, 2008, 11:04:32 AM
this suggests that you constrain the stretch of the arc to a single seat unit spacing, and then use a polar array
Title: Re: Arc Radius
Post by: jbuzbee on January 17, 2008, 12:39:31 PM
Hmm.  There is no Polar Array action . . .  :x
Title: Re: Arc Radius
Post by: mjfarrell on January 17, 2008, 02:25:35 PM
Polar

Adds a polar parameter to the current dynamic block definition. Defines custom distance and angle properties for the block reference. You associate a move, scale, stretch, polar stretch, or array action with a polar parameter.

Specify base point or [Name/Label/Chain/Description/Palette/Value set]: Specify a start point for the parameter or enter an option

Specify endpoint: Specify an endpoint for the parameter

Specify label location: Specify a location for the parameter label

Enter number of grips [0/1/2] <2>: Specify the number of grips for the parameter

If you specify one grip for the parameter, the grip is added to the endpoint of the parameter.

Title: Re: Arc Radius
Post by: jbuzbee on January 17, 2008, 02:28:57 PM
There is NO Polar ACTION.  I see the parameter . . ..
Title: Re: Arc Radius
Post by: mjfarrell on January 17, 2008, 02:45:53 PM
it's a parameter set
Title: Re: Arc Radius
Post by: jbuzbee on January 17, 2008, 04:01:28 PM
Yes I know - but it isn't a Polar Array: it's a Polar Stretch parameter with a Rectangular Array action.  There is NO Polar Array action.

Thanks for the help anyway.

Matt: I took your suggestion, only changed it to divide because I wanted it too fill the arc.  Here's a quick and dirty routine:

Code: [Select]
(defun c:MakeTheaterSeats  (/ ent obj len num)
  (setq ent (car (entsel "\nSelect the arc: ")))
  (if ent
    (progn (setq obj (vlax-ename->vla-object ent)
                 len (vla-get-ArcLength obj))
           (setq num (fix (/ len 22.0)))
           (command "divide" ent "block" "seata" "Y" num))))

(defun c:qq()(c:MakeTheaterSeats))
Title: Re: Arc Radius
Post by: whdjr on January 18, 2008, 08:26:55 AM
You can do this with the traditional Array command.  Use the Polar Array option, give it a length, and then tell it how many seats to put in.  It will even allow you to rotate the seat to the center of the arc if you want it to.