DE EN Polygonmania.GSM


Informations / Informationen

Status of developing / Entwicklungsstatus:
Work in progress

Actual version / Aktuelle Version:

Language / Sprache:
German, (English)

Licensing / Lizenzierung:

Environment / Umgebung:
ArchiCAD 11.0, Win XP, (development/Entwicklung)
ArchiCAD 11+, Win XP (test)

Target group / Zielgruppe:
GDL developers

Author / Autor:
Frank Beister

Documents / Dokumente

 TitleModified DateSizeDescriptionClicks
Demostration 0111/22/2009799.22 KBDemonstration movie. Needs TechSmith/Camtasia video codec.0

Description / Beschreibung

1. Macro object to calculate a free polygonal path.


2. Macro object for graphical editable polygon by midpoint technic.

  • No limitation in edges
  • Increasing and decreasing edges graphical
  • Intended for 2D and 3D
  • Adding any nodes in floor plan or 3D
  • The polyline can contain real arcs.
  • Two independant (different length and shape) polylines possbile.
  • Any number of clones of each of this both lines possible. The clones have the exact same number of corners.
  • Several parameters for hotspots and hotlines.
  • Edge independant segmentation of the line by partly length.
  • Calculation of additional informations (area, maximum dimensions etc.)
  • User Interface for exact positioning

This object can not be placed in a project file. It is for programmers usage only!

1. Makro zur Auswertung eines beliebigen Polygonzuges mit linearen, Kreisbogen und Splineabschnitten. Ermittlung von

  • Länge
  • Winkelhalbierenden
  • Lotpunkten
  • Abschnittspunkten
  • Parallellinien

Segmentierung in lineare Abschnitte. Optimierung der Abweichung von der Kurve.

2. Makro, das eine graphisch (Mittelpunkt-Technik) editierbare Polylinie erzeugt. Dieses benötigt das erste Makro zur Kurvenermittlung.

Dieses Objekt kann nicht in einem Projekt eingesetzt werden. Es ist nur für die GDL Programmierung verwendbar.

News + History

code recycling - Thursday, October 22, 2009
Split into two objects. One for drawing and editing the polygon. A second macro object for calculating all polygonal stuff around arcs etc.
Implemented arcs defined by tangents.

Big changes - Wednesday, October 14, 2009
Another big step forward. Concept of segmentation style is changed. It is prepared for 3 different arc definition methods and two Bezier segment types. Of course beside straight an (new) NO segment. Yes, Bezier! I decided to include this type of shape from the beginning, not later, when I decided to create the CURVE-macro. At least it is prepared now to include it later completely. My main focus is now to finish a first stable version with two polygons of "parallel" polygons.
This will lead to the first spin of to realise an object, which stretches bitmaps on a freeform plane in 3D. With this object you will be able to generate a 3D model out of two, three or more bitmaps straight without an AddOn. Still future music, as we say in Germany, but not so far away, I hope.
Back to the news: 3 point defined arcs work well so far. If the 3rd point of the arc definition is the exact midpoint between the bordering corners or identical with one of them, a straight segment will be output. If the corner is set to be a straight segment, the 3rd point is preset to the midpoint (without function, of course).
Maximal aberration defines segmentation of each arc segment. Because "parallel" polygons may have different radius in each arc I calculate it for each segment separately. I programmed it first in this way, that the complete segmented polygon will be calculated after each change of the constructing nodes. This caused problems, if each segment of each polygon in one set has to be separated in identical number of approximating (max. aberration) parts. This is necessary e.g. to realise a editable RULED-object. It created very large array parameters, too. Anyway. I discarded this way. Solution: After each change of a corner or any other shape defining parameter the following values will be calculated and stored in a parameter: ARC-midpoint, -radius, -beginning angle, -end angle and the number of seg

Bugfixing - Wednesday, October 14, 2009
Arcs whose border points share the same X or Y value did not work proper (Malfunction of exeption/zero definition of TAN-function part). Solved by a new case investigation and a dirty workaround with an endless inclination.

One big step forward - Wednesday, October 14, 2009
New try and big step forward: Found a cardinal spline algorithm. Prepared for a common polyline macro. Found a segment reducing algrithm.

Vectorfont and UI - Thursday, July 12, 2007
Implemented the vectorfont for corner labeling and UI added. Buttons for arc and bezier section added. Edge vivibility button too.

Multiple Polygons - Wednesday, July 4, 2007
Implemented first multiple polygon set. One can adjust any number of polygons with identical number of nodes. Inserting a new edge inserts one at the same position (dividing half the distance) in the rest of the polygons too. Origin of each polygon is independant moveable. Unique hotspot IDs fixed to each edge: After inserting a new edge dimension strings will keep correct associated to the objekt (ArchiCAD 11+).

First working version - Thursday, June 28, 2007
First version, wich works without jumping nodes or malfunctional hotspots. After I thought I have it on 7th of June, now it works! Puh! Prepared for multiple polygons. Will become a battle of parameters!

Merged object starts - Thursday, June 7, 2007
For programming an editable boundary for the curve-makro I awake two older tries (2004/2005) of graphical editable polylines. One, which I wrote for concrete plate is partly obsolete, since GS ships a poly-macro with its basic library.


To do + wishlist


  • Segmentierung berechnen
  • Closed Poly fertig implementieren
  • Bezier implementieren
  • Randtangenten einer Spline
  • Echte Bogensegmente
  • Berechnungen
    - Umfang
    - Schwerpunkt
    - Teilungen (mit Richtungsvektoren)
    - Richtungsvektoren (Mitte/Ecken)
    - Innenwinkel
    - Konvex/Konkav
    - Linksrum/rechtsrum
    - Fläche


  • Userinterface
  • Bitmaps für Dropdown im Userinterface.
  • Plausibilitätsprüfung
  • Graphisches editieren -> Zwischenspeichern des Ergebnisses
  • 2. Polygon-Satz
  • Zwischenspeichern der Erzeugerwerte für die Bögen. Inkl. Bogenlängen. Mehr Kontextsensitivität! Z.B. beim Einfügen nicht alles neu berechnen.
  • Checkboxen für Fangpunktausgabe: Konstruktion / Segmentierung nach Streckenlängen
  • Bei Bögen Toleranzabfrage. Dann homogene Segmentierung des Bogens
  • Umsetzung für 3D
  • Bei 2D mit Z-Koordinaten sicherstellen, dass nicht zufällig neue Ecken eingefügt werden.
  • 1. Testobjekt: RULED oder Böschungslinie
  • Eigenschaften der Züge (free, minus (Loch), Synchron)


  • ....


  • Polygonbezeichner (#) in der Mitte beim Editieren
  • Optional nur den edierten Polygonzug beschriften
  • Flächenfüllung ausgeben
  • Boundary Box/Burstschalter fürs Editieren.
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies.
Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu.
Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung