Forum Replies Created
-
AuthorPosts
-
Péter BaksaKeymaster
In Archicad yes, a fill can display its area, and IES can list the surface of an object.
In GDL no, you have to calculate it. If the polygon contains no holes, and only straight edges, the Shoelace formula is simple to code.Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
If I understand right, you are placing a new element in the new AC version. Element defaults aren’t migrated this way, only placed elements. The settings dialog doesn’t store the parameters of the default object, just reads the actual default values from the library. Favorites I think should be migrated.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterMaybe REVOLVEDSHELLANGULAR{2} with status 2?
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi all, some basic tutorial about profiles is available at other docs. They’re not covering all details, but a good point to start.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi, try REVOLVEDSHELLANGULAR. Does it do what you need?
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterSPLIT can only process numbers delimited with whitespace.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterYou have to set the material on each edge, 0 uses the current pen. Yes, side_material looks redundant, I don’t know why it is there.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
the trick is CPRISM_{3} with mask 8.
CPRISM_{3} 0, 0, 0, 8, 7, 1, 0, 0, 0, 15, 0, 0, 1, 0, 15, 0, 0.25, 1, 0, 15, 0, 0.5, 1, 0, 900, 0, 0, 180, 0, 4015, 0, 1, 1, 0, 15, 0, 1, 0, 0, 15, 0
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterMaybe support can help, I doubt it is an existing package.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
these icons are not part of the library, they are built-in resources of ARCHICAD. They are not in the SDK’s either.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHI Chris,
GDL objects only know about themselves (there are some global variables and REQUESTS to get info about parent objects).
You can manipulate the parameter values in the parameter script using the PARAMETERS command. But be aware that the parameter script is only run after user input – changing a setting, placing a new instance.The library MVO approach is good if you write your own set of objects that read the settings written by you. You can’t add new MVO settings to control the ArchiCAD Library.
If you need to change the behaviour of the shipped ArchiCAD library programmatically, you will need to write an Add-on in C++ using the ARCHICAD API.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
You can define the number of horizontal cutplanes and their heights relative to the object 0 in the project2{4} command.
These cutplanes cut the space into n+1 parts.
For each part, the projection method (wireframe/shaded/…, fill/line attribute overrides), visible parts’ flags (cut/viewed – polygons/edges), and attributes (cut/projected – fills/lines) are needed.Suppose you need a projection with visible, cut and overhead attributes: define one cutplane.
The bottom part (bottom to cutplane) will have cut and viewed parts, with visible attributes for the projected parameters, and cut attributes for the cut parameters.
The upper part (cutplane to top) will only need a viewed part, with overhead attributes for the projected parameters. and all 0 (or anything) for the cut parameters.I hope this helps.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
There is a call (gosub) to “LineLineIntersection” in the 3D script. The input variables are set up before the call.
vx, vy is computed from two points (_intersectEdge[1] and _intersectEdge[2]) on the line, divided by the distance of the two points:
! line 1 vx1 = (_intersectEdge[2][1] - _intersectEdge[1][1]) / _intersectEdgeLength vy1 = (_intersectEdge[2][2] - _intersectEdge[1][2]) / _intersectEdgeLength
px, py is any point on the line:
px1 = _intersectEdge[1][1] py1 = _intersectEdge[1][2]
This is done again for the second line:
! line 2 vx2 = (_intersectEdgeLeft[2][1] - _intersectEdgeLeft[1][1]) / _intersectEdgeLeftLength vy2 = (_intersectEdgeLeft[2][2] - _intersectEdgeLeft[1][2]) / _intersectEdgeLeftLength px2 = _intersectEdgeLeft[1][1] py2 = _intersectEdgeLeft[1][2]
The result intersection is ipx, ipy, when state = 1 (otherwise the lines are parallel):
gosub "LineLineIntersection" ! returns ipx, ipy, state if state <> 0 then _intersectPtLeft[1] = ipx _intersectPtLeft[2] = ipy endif
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterHi,
This forum is only read by a few GDL programmers. If you need official GS response on this issue, please communicate your ideas directly to support. If you want to discuss it with a broader range of users, take it to the AC-talk forum.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SEPéter BaksaKeymasterYes, have a look at “basicStairTread_m” 3D script.
Péter Baksa
Library Platform, Software Engineer
GRAPHISOFT SE -
AuthorPosts