I would like to make ONE Wire out of ALL Edges from the Screen and file attached. For some reason some Edges are missing (pink in the second screen is the wire). What I did:
What happens when you first order the edges so that consecutive ones have common endpoints?
It will happen that you need to add some edges more than once because your figures is not a euler graph.
(Seems to independent from the current FreeCAD versions.)
microcelly2 is right: If you select arbitrary paths through your network without having more than 2 lines at one vertex, the upgrade tool creates a pathwire. If I connect several of these wires I get a block.
Edit in blue
Last edited by chrisb on Fri May 19, 2017 3:55 pm, edited 1 time in total.
bernd wrote:I would like to make ONE Wire out of ALL Edges from the Screen and file attached.
What are your plans for this wire?
If all Edges are connecte a Edgemesh generated with GMSH has connected Edges and is appropriate for an FEM calculation. It is like the CompSolids but just not in 3D (Solids vs CompSolids) but 1D instead (Edges vs. Wire). Same with Face and Shell you may remember we had a looooong discussion about the Shell some time ago before the BooleanFragments where available in FreeCAD.
@DeepSonic works great here too!
BTW: with OCCT < 6.9 this could be made with a Fusion, good too know with OCCT >= 6.9 it could be made with the BooleanFragments
tanderson69 wrote:Curious, what does gmsh do with a compound of 'connected' edges?
Same what GMSH meshes if you pass a Compound of "connected" Solids instead of one CompSolid or if you pass a Compound of "connected" Faces instead of one Shell or a Compound of "connected" Edges instead of one Wire. GMSH will mesh them in one big mesh but will not connect them means for the connected Edges in the mesh there will be at a vertex where 3 Edges meat there will be three nodes. Each Edge will have his own node, thus the Edges are not connected. If you pass one wire GMSH will make one Vertex at the point where the three edges are connected. GMSH just meshes what it gets. Means you need to pass the wire as brep.
import BOPTools.SplitFeatures
import Part
j = BOPTools.SplitFeatures.makeBooleanFragments(name='BooleanFragments')
j.Objects = App.ActiveDocument.Compound
j.Proxy.execute(j)
j.purgeTouched()
for obj in j.ViewObject.Proxy.claimChildren():
obj.ViewObject.hide()
w = Part.Wire(j.Shape.Edges)
for e in j.Shape.Edges:
w.add(e)
j.ViewObject.hide()
Part.show(w)