Macro MeshToPart/de: Difference between revisions
Renatorivo (talk | contribs) (Created page with "{{Macro/de|Icon=Text-x-python|Name=MeshToPart|Description=This macro converts selected meshes to parts. It has a broad tolerance, so use it only with objects that have no curv...") |
(Updating to match new version of source page) |
||
(19 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro/de|Icon=Text-x-python|Name=MeshToPart|Description=This macro converts selected meshes to parts. It has a broad tolerance, so use it only with objects that have no curves otherwise you'll get weird results|Author=Wmayer}} |
|||
{{Macro/de |
|||
|Name=MeshToPart |
|||
|Icon=Macro_MeshToPart.png |
|||
|Translate=MeshToPart |
|||
|Description=Dieses Makro konvertiert ausgewählte Netze in Teile. Es hat eine große Toleranz, verwenden Sie es also nur für Objekte, die keine Kurven haben, sonst erhalten Sie seltsame Ergebnisse |
|||
|Author=Wmayer |
|||
|Version=1.0 |
|||
|Date=2011-08-01 |
|||
|FCVersion=All |
|||
|Download=[https://www.freecadweb.org/wiki/images/f/fa/Macro_MeshToPart.png ToolBar Icon] |
|||
}} |
|||
==Beschreibung== |
|||
Dieses Makro konvertiert ausgewählte Netze in Teile. Es hat eine große Toleranz, verwenden Sie es also nur für Objekte, die keine Kurven haben, andernfalls werden Fehler oder seltsame Ergebnisse angezeigt |
|||
== |
==Skript== |
||
ToolBar Icon [[Image:Macro_MeshToPart.png]] |
|||
This macro converts selected meshes to parts. It has a broad tolerance, so use it only with objects that have no curves otherwise you'll get errors or weird results |
|||
'''Macro_MeshToPart.FCMacro''' |
|||
{{MacroCode|code= |
|||
<syntaxhighlight> |
|||
import FreeCAD,FreeCADGui,Mesh,Part,MeshPart |
import FreeCAD,FreeCADGui,Mesh,Part,MeshPart |
||
Line 41: | Line 57: | ||
FreeCAD.ActiveDocument.removeObject(name) |
FreeCAD.ActiveDocument.removeObject(name) |
||
FreeCAD.ActiveDocument.addObject("Part::Feature",name).Shape = solid |
FreeCAD.ActiveDocument.addObject("Part::Feature",name).Shape = solid |
||
}} |
|||
</syntaxhighlight> |
|||
{{clear}} |
{{clear}} |
||
== |
==Verknüpfung== |
||
Die Diskussion im Forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=253&hilit=getPlanarSegments Convert mesh to solid?] |
|||
⚫ |
Latest revision as of 11:08, 23 May 2020
Beschreibung |
---|
Dieses Makro konvertiert ausgewählte Netze in Teile. Es hat eine große Toleranz, verwenden Sie es also nur für Objekte, die keine Kurven haben, sonst erhalten Sie seltsame Ergebnisse Versionsmakro : 1.0 Datum der letzten Änderung : 2011-08-01 FreeCAD version : All Herunterladen : ToolBar Icon Autor: Wmayer |
Autor |
Wmayer |
Herunterladen |
ToolBar Icon |
Links |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
Macro-Version |
1.0 |
Datum der letzten Änderung |
2011-08-01 |
FreeCAD-Version(s) |
All |
Standardverknüpfung |
None |
Siehe auch |
None |
Beschreibung
Dieses Makro konvertiert ausgewählte Netze in Teile. Es hat eine große Toleranz, verwenden Sie es also nur für Objekte, die keine Kurven haben, andernfalls werden Fehler oder seltsame Ergebnisse angezeigt
Skript
Macro_MeshToPart.FCMacro
import FreeCAD,FreeCADGui,Mesh,Part,MeshPart for obj in FreeCADGui.Selection.getSelection(): if "Mesh" in obj.PropertiesList: faces = [] mesh = obj.Mesh segments = mesh.getPlanarSegments(0.01) # use rather strict tolerance here for i in segments: if len(i) > 0: # a segment can have inner holes wires = MeshPart.wireFromSegment(mesh, i) # we assume that the exterior boundary is that one with the biggest bounding box if len(wires) > 0: ext = None max_length = 0 for i in wires: if i.BoundBox.DiagonalLength > max_length: max_length = i.BoundBox.DiagonalLength ext = i wires.remove(ext) # all interior wires mark a hole and must reverse their orientation, otherwise Part.Face fails for i in wires: i.reverse() # make sure that the exterior wires comes as first in the lsit wires.insert(0, ext) faces.append(Part.Face(wires)) shell=Part.Compound(faces) solid = Part.Solid(Part.Shell(faces)) name = obj.Name FreeCAD.ActiveDocument.removeObject(name) FreeCAD.ActiveDocument.addObject("Part::Feature",name).Shape = solid
Verknüpfung
Die Diskussion im Forum Convert mesh to solid?