Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

How at runtime to change set of the points in the EXTRUDE?

Anonymous
Not applicable
Really need help.

I need to change set of the points in command EXTRUDE at runtime.
How I can do it?

EXTRUDE 15,0,0,0.01, 1+2+4+16+32,
! --- set of points:
0.000000,0.000000,0,
0.683490,0.000000,0,
0.683490,0.376452,0,
0.000000,0.376452,0,
0.000000,0.000000,-1,
0.268917,0.285506,0,
0.370493,0.285506,0,
0.370493,0.178024,0,
0.268917,0.178024,0,
0.268917,0.285506,-1,
0.450810,0.208733,0,
0.526401,0.208733,0,
0.526401,0.144952,0,
0.450810,0.144952,0,
0.450810,0.208733,-1

Please help me!)
5 REPLIES 5
sinceV6
Advocate
Hi.
How was this created? It looks like the coordinates come from a shape dragged to the script window or something saved as an object. You'd need to know the data before calling the command so it can be done at runtime. Depending on the final shape to be extruded, you would usually use parameters, arrays, loops and PUT, USE/GET to give the values to EXTRUDE in the script.

Best regards.
Erwin Edel
Rockstar
I am not 100% sure what you mean, but it sounds like you want to take a look at Parameter Buffer Manipulation. Commands: GET, PUT, USE and NSP.

You can define parameters, grab them with PUT and then USE(NSP) for the EXTRUDE coordinates.

Example taken from the GLD Reference Guide:
r=2: b=6: c=4: d=10
n=12
s=180/n
FOR t=0 TO 180 STEP s
PUT r+r*COS(T), c-r*SIN(t), 1
NEXT t
FOR i=1 TO 2
EXTRUDE 3+NSP/3, 0,0,d, 1+16,
0, b, 0,
2*r, b, 0,
USE(NSP),
0, b, 0
MULY -1
NEXT i
DEL 1
ADDZ d
REVOLVE 3+NSP/3, 180, 0,
0, b, 0,
2*r, b, 0,
GET(NSP),
0, b, 0
Erwin Edel, Project Lead, Leloup Architecten
www.leloup.nl

ArchiCAD 9-26NED FULL
Windows 10 Pro
Adobe Design Premium CS5
Anonymous
Not applicable
Oh, thank You!)
The text was created with GDL Code Generator Helper, that I'm trying to implement.
https://www.youtube.com/watch?v=XifIcdeLg3g
The new idea to make the algorithm to:
1. to draw FILL in 2d window
2. select a FILL and an instance of an special object
3. press the button and the coordinates of the hatch will be written to the array in the selected object
4. and the object will take from the array coordinates and to do the EXTRUDE in the form of the former hatch

I do not read about PUT/GET and try to use them. There's even examples in the GDL guide).

Thank you very much for the help everyone!)
Anonymous
Not applicable
It's really work!!!)

!--- THIS:
count = 15

PUT 0.000000,0.000000,0
PUT 0.683490,0.000000,0
PUT 0.683490,0.376452,0
PUT 0.000000,0.376452,0
PUT 0.000000,0.000000,-1

PUT 0.268917,0.285506,0
PUT 0.370493,0.285506,0
PUT 0.370493,0.178024,0
PUT 0.268917,0.178024,0
PUT 0.268917,0.285506,-1

PUT 0.450810,0.208733,0
PUT 0.526401,0.208733,0
PUT 0.526401,0.144952,0
PUT 0.450810,0.144952,0
PUT 0.450810,0.208733,-1

EXTRUDE count,0,0,0.01, 1+2+4+16+32,
GET(NSP)

!--- AND THIS works too
:
! in parameter 3-dimension array TSPoints written points values

count = vardim1(TSPoints)
for i=1 to count
PUT TSPoints[1],TSPoints[2],TSPoints[3]
next i

EXTRUDE count,0,0,0.01, 1+2+4+16+32,
GET(NSP)

Thanks again for the help everyone!)
Bruce
Advisor
To help streamline a bit further, you don’t need to have PUT at the beginning of every line, e.g.

PUT x1, y1, z1, s1,
x2, y2, z2, s2,
x3, y3, z3, s3
Bruce Walker
Barking Dog BIM YouTube
Mindmeister Mindmap
-- since v8.1 --
AC27 5060 INT Full | Windows 11 64 Pro | 12th Gen Intel i7-12700H 2.30 GHz | 64 Gb RAM | NVIDIA GeForce RTX 3060 32 Gb