Arch 3Views: Difference between revisions

From FreeCAD Documentation
No edit summary
(Marked this version for translation)
Line 21: Line 21:
# Select menu {{MenuCommand|Arch → Utilities → [[Image:Arch 3Views.svg|16px]] [[Arch 3Views|3Views]]}}.
# Select menu {{MenuCommand|Arch → Utilities → [[Image:Arch 3Views.svg|16px]] [[Arch 3Views|3Views]]}}.


== Scripting ==
== Scripting == <!--T:12-->
{{Emphasis|See also:}} [[Arch API]] and [[FreeCAD Scripting Basics]].
{{Emphasis|See also:}} [[Arch API]] and [[FreeCAD Scripting Basics]].


<!--T:13-->
This tool can be used in [[macros]] and from the [[Python]] console by using the following function:
This tool can be used in [[macros]] and from the [[Python]] console by using the following function:
{{Code|code=
{{Code|code=
Line 29: Line 30:
}}
}}


<!--T:14-->
* Creates a flat {{incode|shape}} that is the projection of the given mesh object ({{incode|obj}}) in the given {{incode|direction}}.
* Creates a flat {{incode|shape}} that is the projection of the given mesh object ({{incode|obj}}) in the given {{incode|direction}}.
* If {{incode|outeronly}} is {{incode|True}} only the outer contour is taken into consideration, discarding the inner holes.
* If {{incode|outeronly}} is {{incode|True}} only the outer contour is taken into consideration, discarding the inner holes.
* If {{incode|largestonly}} is {{incode|True}} only the largest segment of the given mesh will be used.
* If {{incode|largestonly}} is {{incode|True}} only the largest segment of the given mesh will be used.


<!--T:15-->
Use {{incode|Part.show()}} to display the resulting flat shape.
Use {{incode|Part.show()}} to display the resulting flat shape.


<!--T:16-->
Example:
Example:
{{Code|code=
{{Code|code=
import FreeCAD, Draft, Arch, Mesh, MeshPart
import FreeCAD, Draft, Arch, Mesh, MeshPart


<!--T:17-->
Line = Draft.makeWire([FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(2000, 2000, 0)])
Line = Draft.makeWire([FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(2000, 2000, 0)])
Wall = Arch.makeWall(Line, width=150, height=3000)
Wall = Arch.makeWall(Line, width=150, height=3000)
FreeCAD.ActiveDocument.recompute()
FreeCAD.ActiveDocument.recompute()


<!--T:18-->
Shape = Wall.Shape.copy(False)
Shape = Wall.Shape.copy(False)
Shape.Placement = Wall.getGlobalPlacement()
Shape.Placement = Wall.getGlobalPlacement()


<!--T:19-->
mesh_obj = FreeCAD.ActiveDocument.addObject("Mesh::Feature", "Mesh")
mesh_obj = FreeCAD.ActiveDocument.addObject("Mesh::Feature", "Mesh")
mesh_obj.Mesh = MeshPart.meshFromShape(Shape=Shape, MaxLength=520)
mesh_obj.Mesh = MeshPart.meshFromShape(Shape=Shape, MaxLength=520)
Line 51: Line 58:
FreeCAD.ActiveDocument.recompute()
FreeCAD.ActiveDocument.recompute()


<!--T:20-->
XAxis = FreeCAD.Vector(1, 0, 0)
XAxis = FreeCAD.Vector(1, 0, 0)
YAxis = FreeCAD.Vector(0, 1, 0)
YAxis = FreeCAD.Vector(0, 1, 0)
ZAxis = FreeCAD.Vector(0, 0, -1)
ZAxis = FreeCAD.Vector(0, 0, -1)


<!--T:21-->
s1 = Arch.createMeshView(mesh_obj, ZAxis)
s1 = Arch.createMeshView(mesh_obj, ZAxis)
s2 = Arch.createMeshView(mesh_obj, XAxis)
s2 = Arch.createMeshView(mesh_obj, XAxis)
s3 = Arch.createMeshView(mesh_obj, YAxis)
s3 = Arch.createMeshView(mesh_obj, YAxis)


<!--T:22-->
Part.show(s1)
Part.show(s1)
Part.show(s2)
Part.show(s2)
Part.show(s3)
Part.show(s3)


<!--T:23-->
Wall.ViewObject.Visibility = False
Wall.ViewObject.Visibility = False
mesh_obj.ViewObject.Visibility = False
mesh_obj.ViewObject.Visibility = False
Line 70: Line 81:
[[Category:Arch]]
[[Category:Arch]]


<!--T:24-->
{{Arch Tools navi}}
{{Arch Tools navi}}
{{Userdocnavi}}
{{Userdocnavi}}

Revision as of 23:07, 22 December 2018

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Arch 3Views

Menu location
Arch → Utilities → 3 Views from mesh
Workbenches
Arch
Default shortcut
None
Introduced in version
-
See also
Arch SplitMesh, Arch MeshToShape

Description

This command is currently not in use. It will serve to generate flat, shape-based views from a Mesh based object, to be used by the Arch Equipment tool.

How to use

  1. Select a Mesh object.
  2. Select menu Arch → Utilities → 3Views.

Scripting

See also: Arch API and FreeCAD Scripting Basics.

This tool can be used in macros and from the Python console by using the following function:

shape = createMeshView(obj, direction=FreeCAD.Vector(0, 0, -1), outeronly=False, largestonly=False)
  • Creates a flat shape that is the projection of the given mesh object (obj) in the given direction.
  • If outeronly is True only the outer contour is taken into consideration, discarding the inner holes.
  • If largestonly is True only the largest segment of the given mesh will be used.

Use Part.show() to display the resulting flat shape.

Example:

import FreeCAD, Draft, Arch, Mesh, MeshPart

Line = Draft.makeWire([FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(2000, 2000, 0)])
Wall = Arch.makeWall(Line, width=150, height=3000)
FreeCAD.ActiveDocument.recompute()

Shape = Wall.Shape.copy(False)
Shape.Placement = Wall.getGlobalPlacement()

mesh_obj = FreeCAD.ActiveDocument.addObject("Mesh::Feature", "Mesh")
mesh_obj.Mesh = MeshPart.meshFromShape(Shape=Shape, MaxLength=520)
mesh_obj.ViewObject.DisplayMode = "Flat Lines"
FreeCAD.ActiveDocument.recompute()

XAxis = FreeCAD.Vector(1, 0, 0)
YAxis = FreeCAD.Vector(0, 1, 0)
ZAxis = FreeCAD.Vector(0, 0, -1)

s1 = Arch.createMeshView(mesh_obj, ZAxis)
s2 = Arch.createMeshView(mesh_obj, XAxis)
s3 = Arch.createMeshView(mesh_obj, YAxis)

Part.show(s1)
Part.show(s2)
Part.show(s3)

Wall.ViewObject.Visibility = False
mesh_obj.ViewObject.Visibility = False