Display malfunction of Graphisoft ID dashboard
Learn more
cancel
Showing results for 
Search instead for 
Did you mean: 
EN
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

using offset to find locations

i am working on a coding project where i am taking a slab, drawing a fill around its perimeter and a variable distance offseted. i am currently using put and get to hold my outside variables, but cannot seem to be able to use something like "put offset=xxx" so my question is, can you take an existing slab and get its offseted point's coordinates?
	put 0'-0.0000", 0'-0.0000", 0'-0.0000" 
 
	for point_id=1 to crd_begend[1][2] 
		put ac_coords[point_id][2],ac_coords[point_id][3],1 
	next point_id 
 
 
	fill gs_fill_type 
	poly2_b	crd_begend[1][2]+1, 3, gs_fill_pen, gs_back_pen, 
			get(nsp)


this is my current use of put and get to draw a poly fill around the slab.

thanks in advance!
9 Replies 9
David Pacifico
Booster
Any Help? We are trying in GDL to draw a fill with a hole in it offset from another element. Namely a Slab. Getting the first fill is do-able but getting the hole offset an equal distance all the way around seems to be the challange we are having.
David Pacifico, RA

AC27 iMac i9, 32 gig Ram, 8 gig video Ram
Anonymous
Not applicable
If UA hr using an "ac_coords[][]"
Uri using an Extra's ( Accessory) Slab ......


UA have to redefine (circular functions) the ac_coords points into new points (angle based on the Previous , Your and Next point positions)

CU mirco
www.cad3d.it
Anonymous
Not applicable
David and Matthew
I don't have an answer to your question but I have a question for you.
Where are you getting the array syntax you're using??? Specifically the "crd_begend[1][2]" and the "ac_coords[point_id][2]" statements. Are the variables for your array names global variables???

Thanks,
Dan K
Anonymous
Not applicable
CU mirco: thank you. i will play with that and see how it turns out.

Dan, like mirco said, these arrays are from the extras slab accessory. the syntax for these from what i have been able to find are:

crd_begend[ poly_id ][ num1 ]

where poly_id is the current drawing shape. and num1 being a 1 or 2 to state the beginning and ending point_id

ac_coords[ point_id ][ num2 ]

where point_id states for which point you are asking the coordinates for and num2 being the coordinate values. 1 i am assuming would be a z-value which i have no need for and am not sure on. 2 is your x-value, and 3 is your y-value.
LiHigh
Newcomer
To offset every coordinate, you will need 3 ponits:
1) Previous Point.
2) Current/original Point.
3) Next Point.

These points are needed to determine the bisecting Angle so that u could obtain the new coordinate.

Peychich, have you ever thought of using "MUL" ? Pherhap this is easier!
Howard Phua

Win 10, Archicad 19 INT
Anonymous
Not applicable
This is an example 😉

CU mirco sorgato
http://www.3Dsmile.it
Anonymous
Not applicable
mirco
that is only partially what is needed. you have 2 separate fills which are overlapping. what i'm trying to get is a single fill that makes one round following the slab outlines and then continues to draw with the same poly command the offset coordinates. this will make a fill with a whole in the center that is offset x distance.
Anonymous
Not applicable
Dear Mat(thew),
in my example I have divide the hole(s) code from the whole code.

There are 2 fills, in one there is the Offset control.

CU mirco
Anonymous
Not applicable
I don't know if this will work it is only a thought.

Can you have a loop which grabs the coords and assigns them to a temp parameter, adds your offset then places them into a put/get. You would need an if statement looking at the current coord and the last one to determine which way it is going so it knows to + or - on x or y. You would also need a tick box to tell it if it was drawn clockwise or anticlockwise. Kinda complicated but it might work.

Julia

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!