Beschreibung |
---|
Dieses Makro setzt die Position aller Teilebehälter auf den Dokumentursprung zurück, wobei die absoluten Objektpositionen beibehalten werden.
Dieses Makro wurde hauptsächlich geschrieben, um die unvollständige Implementierung von Teilebehältern zu umgehen, die zu einer absoluten Positionsverschiebung führen kann, vor allem beim Exportieren von Teilen. Dies liegt daran, dass Teilebehälter ein lokales Koordinatensystem erstellen, das vom globalen Koordinatensystem verschoben werden kann. Dieses lokale Referenzsystem wird dann von nachfolgenden Objekten verwendet, aber von einigen Funktionen (z. B. Export) nicht korrekt verarbeitet. |
Autor |
OpenBrain |
Herunterladen |
Werkzeugleisten-Symbol |
Links |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
Macro-Version |
0.2 |
Datum der letzten Änderung |
2019-06-10 |
FreeCAD-Version(s) |
0.17+ |
Standardverknüpfung |
None |
Siehe auch |
Makro StraightenObject |
Dieses Makro wurde hauptsächlich geschrieben, um die unvollständige Implementierung von Teilcontainern zu umgehen, die zu einer absoluten Positionsverschiebung führen kann, vor allem beim Exportieren von Teilen. Dies liegt daran, dass Teilcontainer ein lokales Koordinatensystem erstellen, das vom globalen Koordinatensystem verschoben werden kann. Dieses lokale Referenzsystem wird dann von nachfolgenden Objekten verwendet, aber von mehreren Funktionen (z. B. Export) nicht korrekt verarbeitet.
Funktional setzt das Makro die Platzierung der Part Container auf den globalen Ursprung zurück, wobei die absolute Position der Objekte beibehalten wird. Beachten Sie, dass das Makro „PlacementAbsolufy“ für das gesamte aktive Dokument gilt.
Um das Makro zu verwenden, führe es einfach aus, wenn das Dokument, auf das es angewendet werden soll, geöffnet ist.
Das Makro ist über Std AddonManager verfügbar. Der Code wird auf dieser Seite zur Verfügung gestellt, für den Fall, dass das Benutzersystem nicht über git-python verfügt. Obwohl es aktuell sein sollte, ist die neueste Version immer unter FreeCAD-macro FreeCAD-Makro-Verzeichnis verfügbar.
Für ausführlichere Erklärungen siehe Seite Wie man Makros installiert.
Macro_PlacementAbsolufy.FCMacro
#!/usr/bin/python ##################################### # Copyright (c) openBrain 2019 # Licensed under LGPL v2 # # This macro will reset position of all part containers to document origin while keeping the absolute object positions # # Version history : # *0.2 : some typo improvement + commenting for official PR # *0.1 : alpha release, almost no test performed # ##################################### __Name__ = 'PlacementAbsolufy' __Comment__ = 'Reset part containers to global origin while keeping object positions' __Author__ = 'openBrain' __Version__ = '0.2' __Date__ = '2019-06-10' __License__ = 'LGPL v2' __Web__ = 'https://wiki.freecad.org/Macro_PlacementAbsolufy' __Wiki__ = 'https://wiki.freecad.org/Macro_PlacementAbsolufy' __Icon__ = '' __Help__ = 'Run the macro with model active in the GUI' __Status__ = 'Alpha' __Requires__ = 'FreeCAD >= 0.17' __Communication__ = 'https://forum.freecad.org/viewtopic.php?f=3&t=36869' __Files__ = '' currState = {} #initialize a dictionary to store current object placements for obj in App.ActiveDocument.Objects: #going through active document objects if "Placement" in obj.PropertiesList: #if object has a Placement property currState[obj] = obj.getGlobalPlacement() #store the object pointer with its global placement App.ActiveDocument.openTransaction("Absolufy") #open a transaction for undo management for obj, plac in currState.items(): #going through all moveable objects if obj.isDerivedFrom("App::Part"): #if object is a part container obj.Placement = App.Placement(App.Vector(0,0,0),App.Rotation(0,0,0)) #reset its placement to global document origin elif obj.TypeId[:5] == "App::": #if object is another App type (typically an origin axis or plane) None #do nothing else: #for all other objects obj.Placement = plac #replace them at their global (absolute) placement App.ActiveDocument.commitTransaction() #commit transaction
Für jegliches Feedback (Fehler, Funktionswünsche, Kommentare usw.) nutze bitte diesen Forum-Faden: Preserving global position of Parts during export