[Frage] scripten: syntaxhilfe von Edge und Pgon falsch?


Hallo wehrte smart part scripter,

kann es sein, dass der in der allplan hilfe und im smartpart-scripter hinterlegte syntax für edges und pgons falsch ist?

1)angegebener Syntax:
EDGE vert1, vert2

So wäre es schön, aber meiner Erfahrung nach ist dieser Syntax falsch und es müssen insgesamt 5 Werte eingegeben werden, von denen ich mir die letzten drei nicht erklären kann.

2)angegebener Syntax:
PGON n, edge1, edge2, ... , edgen

So wäre es schön, aber meiner Erfahrung nach ist dieser Syntax falsch und es müssen zwischen n und edge1 weitere Werte eingegeben werden, die ich mir nicht erklären kann.

Kennt sich da jemand aus, und kann mir die zusätzlichen notwendigen werte erklären?

Allgemein zum smart-part-scripten:
1) Es gibt nur diese eine dürftige englischsprachige Hilfe. Wenn die auch noch falsch ist, ist das sehr frustrierend.
2) Gibt es im Berliner Raum jemanden, der Interesse hat, sich als Sparringspartner zum Thema Smart-Part scripten auszutauschen. Mir fehlen im Allplan noch einige intelligente Modellierwerkzeuge, die ich versuchen will zu entwickeln.
3) Hat die smartPart-script Sprache überhaupt noch Zukunft? Wie steht es um die Zukunftsfähigkeit von smartpart-script im Verhältnis zu der C++ Schnittstelle zum Programmieren von Plug-ins oder zu der neuen Python-Schnittstelle?

Beste Grüße in die Runde

Marek Czyborra

czyborra klingbeil architekturwerkstatt - http://www.cka.berlin

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

Es ist doch möglich.

Ich habe es jetzt mit dem REVOLVE-Befehl hinbekommen. Zwar musste man etwas mit den Achsen variieren, aber das Resultat kann sich sehen lassen.

In der Syntax sieht man leider nur meine Parameter, aber rechts ist der Radius 2000 und links ist er zu Demonstrationszwecken mal 100 und der Plattenbalken 20 m lang.

Ich habe den Querschnitt quasi in der Entfernung zum Mittelpunkt definiert, wie auch der Krümmungsradius der Trasse entspricht.

Die Brückenlänge steuert Quasi den Winkel alpha, der dann genau so Groß ist, dass die Brücke in der Mitte der gewünschten eingestellten Länge entspricht. Mit Resol schafft man es, Allplan zu sagen, in wieviele Teile der Vollkreis aufgelöst werden soll.

Anhänge (2)

Typ: image/jpeg
302-mal heruntergeladen
Größe: 273,00 KiB
Typ: image/jpeg
276-mal heruntergeladen
Größe: 42,50 KiB

Hallo,

habe über http://www.selfgdl.com/ Antwort zu der Syntax-Frage bei Edge und Pgons gefunden.

Vielleicht sollte Allplan die Syntax-Hilfe mal korrigieren.

Interessant war bei den Pgons, dass die Indizes der Edges einen geschlossenen Umlauf ergeben müssen, und dementsprechend auch negativ angegeben werden müssen, wenn die Vertexe eine andere Richtung vorgeben.

Beste Grüße in die Runde
Marek Czyborra

czyborra klingbeil architekturwerkstatt - http://www.cka.berlin

Hallo Marek,

EDGE vert1,vert2,0,0,0 ist korrekt. Die anderen 3 letzten Parameter (fläche1, fläche2, status) braucht man in Allplan nicht, da die Flächenzuordnung automatisch erfolgt, und es keine unsichtbaren Kanten gibt. Muss man also einfach auf "0" setzen.
PGON n,0,0,edge1,edge2,... ist ebenso korrekt, da man die 2. und 3. Parameter Ausrichtung und Status nicht benötigt. Leider ist die Syntaxhilfe hier falsch :-(
Aber: Diese Befehle brauchst Du eh nur, wenn Du Dir ein Polyhedron aus Punkten, Kanten und Flächen "zu Fuss" zusammensetzen willst. Das ist nicht zu empfehlen, da man dabei leicht Fehler macht. Kannst du den Körper nicht mit den umfangreichen 3D-Befehlen erzeugen?

Gruß Jörg

Danke Jörg!

Da haben sich unsere Beiträge überschnitten.

Ja, mit den Nullen und der richtigen Reihenfolge und der richtigen +/- Werte der Indizes hat es funktioniert.

Ich denke auch, dass dieses Elementar-Werkzeug für meine Bedürfnisse zur Zeit übertrieben ist. Meine Überlegung war es, eine möglichst allgemeingültig und flexible Basis zu kennen.
In der Praxis werde ich meist mit Prism oder den anderen Elementen auskommen.

Schöne Grüße
Marek

czyborra klingbeil architekturwerkstatt - http://www.cka.berlin

Ich habe Probleme Mit der TUBE Funktion.

Ich will später einmal versuchen, einen Brückenquerschnitt Krümmen zu lassen. Dazu wollte ich das Anfangsprofil als Polygon definieren und am ende das selbe Polygon. Ich bekomme aber maximal einen Quader hin (einfachstes Beispiel um Funktion kennen zu lernen. Laut der Syntax definiere ich erst die Anfangs- und Endquerschnitte und könnte sie dann am Ende mit einer Polygonkurve zu einem Körper verbinden.

Bei mir kommt da aber alles außer einer Kurve raus.

Hat da Jmd Ahnung?

Hallo,

die Syntax-Hilfe zum Tube-Befehl lautet:

TUBE n, m, mask, u1, w1, s1, ... , un, wn, sn, x1, y1, z1, angle1, ... , xm, ym, zm, anglem

n (integer): number of polyline nodes
m (integer): number of path curve nodes

mask: controls the existence of the surfaces at the beginning and the end of the tube (see below)
ui, wi: U and W coordinates of the base polyline nodes in the local U-V-W coordinate system
si (boolean): controls the appearance of the lateral edges; if si = 0 the line segment between ni and ji will not be drawn, if si = 1 this line segment will be drawn
xi, yi, zi: X, Y and Z coordinates of the path curve nodes
Important: The path curve comprises two nodes more than the number of generated sections. The first and the last node determine the position in space of the first and the last surface belonging to the tube. These nodes are relevant solely for determining the normal of the surfaces, they are no actual nodes of the path curve. The orientation of the surfaces is the same as that of the surfaces that would be generated at the nodes nearest to the two endpoints, if the tube was continued in the directions indicated by these.
anglei: rotation angle of the cross-section
parameter restrictions: n > 2, m > 3

Masking
mask = j1 + 2*j2
with j1, j2 may be 0 or 1
j1 (1): surface at the beginning of the tube is present
j2 (2): surface at the end of the tube is present

Verkürzt gesagt heisst das:

Zuerst die Punkte des Querschnittes angeben, dann die Punkte des Pfades.
Beim Pfad wird der erste und letzte Punkt nur zum Ausrichten der ersten und letzten Stirnfläche verwendet. D.h. der TUBE-Körper beginnt am zwieten Punkt und endet am vorletzten Punkt.

TUBE 4, 18, 16+32,
2.0, 0.0, 0,
0.0, 0.0, 0,
0.0, 0.4, 0,
2.0, 0.4, 0,
-1, 0, 0, 0,
0, 0, 0, 0,
4, 0, 0.1, 0,
6, 0, 0.15, 0,
6+4*sin(15), 4 - 4*cos(15), 0.2, 0,
6+4*sin(30), 4 - 4*cos(30), 0.25, 0,
6+4*sin(45), 4 - 4*cos(45), 0.3, 0,
6+4*sin(60), 4 - 4*cos(60), 0.35, 0,
6+4*sin(75), 4 - 4*cos(75), 0.4, 0,
10, 4, 0.45, 0,
6+4*sin(105), 4 - 4*cos(105), 0.5, 0,
6+4*sin(120), 4 - 4*cos(120), 0.55, 0,
6+4*sin(135), 4 - 4*cos(135), 0.6, 0,
6+4*sin(150), 4 - 4*cos(150), 0.65, 0,
6+4*sin(165), 4 - 4*cos(165), 0.7, 0,
6, 8, 0.75, 0,
0, 8, 1, 0,
-1, 8, 1, 0

macht so was (s.tube.png)

Gruß Jörg

Anhänge (1)

Typ: image/png
287-mal heruntergeladen
Größe: 80,26 KiB

Das ist schonmal ein guter Ansatz. Nur ist das leider keine Kurve sondern einzelne Polygonlinien.
Bei einem kleinem Radius ist das durchaus praktikabel, nur im Brückenbau hat man Radien von 1000-5000m.

Die Option der Einzellinien ist daher nur begrenzt möglich. Am besten wäre eine Spline, die ich im Radius und in der Gradiente anpassen kann und mein Profil sich dann diesen Parametern entsprechend anpassen kann. Ich hab es schon mit der Sweep-Funktion probiert und mit Revolte.

Die Sweep-Funktion macht mit irgendwann einen Knick hinein, was dann keine schöne Kurve mehr ist. Und Revolte eignet sich dahngehend nicht, dass der Anfang und das Ende zu schief geschnitten werden.

Hallo,

leider unterstützen die SmartParts (noch) keine gekrümmten Körper ala Parasolid.
Diese muss man daher weiter "zu Fuss" mit den Allplan-Werkzeugen "Sweep", "Loft" und "Extrude" konstruieren.

Gruß Jörg

Es ist doch möglich.

Ich habe es jetzt mit dem REVOLVE-Befehl hinbekommen. Zwar musste man etwas mit den Achsen variieren, aber das Resultat kann sich sehen lassen.

In der Syntax sieht man leider nur meine Parameter, aber rechts ist der Radius 2000 und links ist er zu Demonstrationszwecken mal 100 und der Plattenbalken 20 m lang.

Ich habe den Querschnitt quasi in der Entfernung zum Mittelpunkt definiert, wie auch der Krümmungsradius der Trasse entspricht.

Die Brückenlänge steuert Quasi den Winkel alpha, der dann genau so Groß ist, dass die Brücke in der Mitte der gewünschten eingestellten Länge entspricht. Mit Resol schafft man es, Allplan zu sagen, in wieviele Teile der Vollkreis aufgelöst werden soll.

Anhänge (2)

Typ: image/jpeg
302-mal heruntergeladen
Größe: 273,00 KiB
Typ: image/jpeg
276-mal heruntergeladen
Größe: 42,50 KiB