Hallo,
ich versuche gerade einen Durchstanzbereich für eine Stütze als Python Part zu definieren (siehe Bild). mir ist leider überhaupt nicht klar wie ich einen entsprechenden Hatch erzeugen kann. Ich habe einen Path2D aus Linien und Arcs für die Außenkante erzeugt und ich habe einen Stützenquerschnitt als Polygon2d bzw. als Arc für runde Stützen. Der Hactch soll nur im Durchstanzbereich erscheinen, der Stützenquerschnitt sollte ausgespart bleiben.
In den Beispielen findet sich nur ein Hatch mit einen Polygon. Wie ich aber einen Hatch aus zwei Objekten, von denen mindesten eins abgerundet ist, erzeugen kann ist mir komplett schleierhaft. Ich habe es mit einer Closedarea2D versucht, aber das ist leider auch fehlgeschlagen.
Kann mir bitte jemand einen Tip geben?
Vielen Dank,
Gruß Max
- Forum
- CAD Parametrische Modellierung
- PythonParts
[Frage] Hatch funktioniert nicht
Dazu bräuchtest Du die Allplan-Funktion "Polygonize", um diese auf den Path2D anzuwenden!
Leider ist diese aber nur für die BSpline3D nach Python exportiert!
Also mußt Du dir die Punkte für den Umriss selbst "zusammenrechnen":
Bei Linien nicht so schwer (Anfangs/Endpunkt), und beim Kreis mit sin/cos eigentlich auch nicht!
Hallo Nemo,
Vielen Dank für die schnelle Antwort! Hatches funktionieren also tatsächlich nur mit Polygonen. Mmh, na gut bekommt man hin. Hier wäre aber schon noch Luft nach oben würde ich mal sagen...
Danke und Viele Grüße
..eine Frage noch, wie würde man es denn hinbekommen, dass die Stütze im Hatch ausgespart wird?
...ganz einfach: Punkte in eine Point2DList schreiben.
Dabei den ersten Punkte des Outline-Polygons am Ende nochmal anfügen, damit wird die Komponente "geschlossen".
Dann einfach weiter die Punkte des Loch-Polygons hinzufügen. Auch hier wieder den ersten Punkt am Ende nochmal hinzufügen.
Ganz zum Schluss ggf. nochmal den ersten Punkt des Outline-Polygons. ( mußte ausprobieren)
Mit dieser Punkt-Liste ein Polygon2D erstellen, und mit diesem Polygon2D dann die Schraffur.
Alternativ könnte man das mit Boolschen Operationen machen: Outline-Polygon minus Loch-Polygon = Schraffur-Polygon.
Aber auch hier wieder: MakeSubtration ist nicht für Polygon2D exportiert :-(
Ok,cool vielen Dank nochmal! Denke das bekomme ich hin.
perfekt, hat funktioniert (siehe Bild)! Und ja man muss am Ende nochmal den ersten Punkt des outline Polygons hinzufügen, sonst klappt es nicht.
Anhänge (1)
kleine Ergänzung nach näherer recherche, falls das hier nochmal irgend jemand mit ähnlichen Problemen liest:
Die BSpline Klasse hat ein paar Funktionen zum Umwandeln von ICurve3D, Arc3D, Line3D. Somit lassen sich auch diese Typen gut mit der Polygonize() Funktion verwenden. Man muss sich also die Punkte für einen Kreis(bogen) nicht selber berechnen.