TechDraw View: Difference between revisions

From FreeCAD Documentation
mNo edit summary
No edit summary
(30 intermediate revisions by 2 users not shown)
Line 15: Line 15:
{{GuiCommand
{{GuiCommand
|Name=TechDraw View
|Name=TechDraw View
|MenuLocation=TechDraw → Insert View
|MenuLocation=TechDraw → TechDraw Views → Insert View
|Workbenches=[[TechDraw_Workbench|TechDraw]]
|Workbenches=[[TechDraw_Workbench|TechDraw]]
|SeeAlso=[[TechDraw_ProjectionGroup|TechDraw Projection Group]], [[TechDraw_SectionView|TechDraw Section View]]
|SeeAlso=[[TechDraw_ProjectionGroup|TechDraw Projection Group]], [[TechDraw_SectionView|TechDraw Section View]]
Line 23: Line 23:


<!--T:10-->
<!--T:10-->
The View tool adds a representation of one or more objects to a Drawing page. This is the basic building block of the TechDraw workbench. Most other Views are derived in some way from View.
The '''TechDraw View''' tool adds a representation of one or more objects to a Drawing page. This is the basic building block of the TechDraw workbench. Most other Views are derived in some way from View.


<!--T:13-->
<!--T:13-->
Line 37: Line 37:


<!--T:12-->
<!--T:12-->
# Optionally rotate the [[3D_view|3D view]]. The camera direction in the [[3D_view|3D view]] determines the initial value of the {{PropertyData|Direction}} property of the View.
# Optionally rotate the [[3D_view|3D view]]. Unless a face is selected in the next step, the camera direction in the [[3D_view|3D view]] determines the initial value of the {{PropertyData|Direction}} property of the View.
# Select one or more objects in the [[3D_view|3D view]] or [[Tree_view|Tree view]].
# Select one or more objects in the [[3D_view|3D view]] or [[Tree_view|Tree view]]. When selecting in the 3D view the first selected face determines the initial value of the {{PropertyData|Direction}} property.
# If there are multiple drawing pages in the document: optionally add the desired page to the selection by selecting it in the [[Tree_view|Tree view]]. This is not optional for {{VersionMinus|0.19}}.
# If there are multiple drawing pages in the document: optionally add the desired page to the selection by selecting it in the [[Tree_view|Tree view]].
# There are several ways to invoke the tool:
# There are several ways to invoke the tool:
#* Press the {{Button|[[Image:TechDraw_View.svg|16px]] [[TechDraw_View|Insert View]]}} button.
#* Press the {{Button|[[Image:TechDraw_View.svg|16px]] [[TechDraw_View|Insert View]]}} button.
#* Select the {{MenuCommand|TechDraw → [[Image:TechDraw_View.svg|16px]] Insert View}} option from the menu.
#* Select the {{MenuCommand|TechDraw → TechDraw Views → [[Image:TechDraw_View.svg|16px]] Insert View}} option from the menu.
# If there are multiple drawing pages in the document and you have not yet selected a page, the {{MenuCommand|Page Chooser}} dialog box opens: {{Version|0.20}}
# If there are multiple drawing pages in the document and you have not yet selected a page, the {{MenuCommand|Page Chooser}} dialog box opens: {{Version|0.20}}
## Select the desired page.
## Select the desired page.
Line 57: Line 57:
* {{PropertyData|X|Distance}}: The view's horizontal position on the page. (1)
* {{PropertyData|X|Distance}}: The view's horizontal position on the page. (1)
* {{PropertyData|Y|Distance}}: The view's vertical position on the page. (1)
* {{PropertyData|Y|Distance}}: The view's vertical position on the page. (1)
* {{PropertyData|Lock Position|Bool}}: Prevents Views from being dragged in the Gui when true. The View can still be moved by changing X,Y properties. (1)
* {{PropertyData|Lock Position|Bool}}: Prevents Views from being dragged in the Gui when {{TRUE}}. The View can still be moved by changing X,Y properties. (1)
* {{PropertyData|Rotation|Angle}}: Counterclockwise rotation of the View on the page in degrees. (1)
* {{PropertyData|Rotation|Angle}}: Counterclockwise rotation of the View on the page in degrees. (1)
* {{PropertyData|Scale Type|Enumeration}}: "Document": use the Page's scale setting. "Custom": use a scale unique to this view. "Automatic": fit view to page. (1)
* {{PropertyData|Scale Type|Enumeration}}: The scale type. Options: (1)
** {{Value|Page}}: Use the [[TechDraw_PageDefault|Page]]'s scale setting.
* {{PropertyData|Scale|FloatConstant}}: A view will be rendered on the page in Scale:1 ratio to the Source. (1)
** {{Value|Automatic}}: Fit the view to the page.
* {{PropertyData|Caption|String}}: Optional short text caption.
** {{Value|Custom}}: Use the scale defined by {{PropertyData|Scale}}.
* {{PropertyData|Scale|FloatConstant}}: The view will be rendered on the page in Scale:1 ratio to the Source. (1)
* {{PropertyData|Caption|String}}: Optional short text caption. (1)


<!--T:8-->
<!--T:22-->
{{TitleProperty|Cosmetics}}
(1) these properties are common to all View types.

<!--T:29-->
* {{PropertyData|Cosmetic Vertexes|TechDraw::PropertyCosmeticVertexList|Hidden}}
* {{PropertyData|Cosmetic Edges|TechDraw::PropertyCosmeticEdgeList|Hidden}}
* {{PropertyData|Center Lines|TechDraw::PropertyCenterLineList|Hidden}}
* {{PropertyData|Geom Formats|TechDraw::PropertyGeomFormatList|Hidden}}


<!--T:26-->
<!--T:26-->
Line 70: Line 79:


<!--T:23-->
<!--T:23-->
* {{PropertyData|Coarse View|Bool}}: If true, TechDraw will use a polygon approximation to calculate drawing geometry. If false, TechDraw will use a precision algorithm. CoarseView can be much faster for complex models. The quality of the drawing is reduced, since every curve is approximated as a series of short line segments. Vertices are not displayed in CoarseView since each short segment would result in two new Vertices and the display becomes cluttered. Linear Dimensions can be added to a CoarseView, but are unlikely to be useful.
* {{PropertyData|Coarse View|Bool}}: If {{TRUE}}, TechDraw will use a polygon approximation to calculate drawing geometry. If {{FALSE}}, TechDraw will use a precision algorithm. CoarseView can be much faster for complex models. The quality of the drawing is reduced, since every curve is approximated as a series of short line segments. Vertices are not displayed in CoarseView since each short segment would result in two new Vertices and the display becomes cluttered. Linear Dimensions can be added to a CoarseView, but are unlikely to be useful.
* {{PropertyData|Smooth Visible|Bool}}: Visible Smooth lines on/off.
* {{PropertyData|Smooth Visible|Bool}}: Visible Smooth lines on/off.
* {{PropertyData|Seam Visible|Bool}}: Visible Seam lines on/off.
* {{PropertyData|Seam Visible|Bool}}: Visible Seam lines on/off.
Line 85: Line 94:
<!--T:24-->
<!--T:24-->
* {{PropertyData|Source|LinkList}}: Links to the drawable objects to be depicted.
* {{PropertyData|Source|LinkList}}: Links to the drawable objects to be depicted.
* {{PropertyData|XSource|XLinkList}}: Links to the drawable objects in an external file. {{Version|0.19}}
* {{PropertyData|XSource|XLinkList}}: Links to the drawable objects in an external file.
* {{PropertyData|Direction|Vector}}: This vector controls the direction from which you are viewing the object. +X is right, -X is left, +Y is rear, -Y is front (looking into the screen), +Z is up and -Z is down. So a Front view is (0,-1,0) and an isometric view is (1,-1,1).
* {{PropertyData|Direction|Vector}}: This vector controls the direction from which you are viewing the object. +X is right, -X is left, +Y is rear, -Y is front (looking into the screen), +Z is up and -Z is down. So a Front view is (0,-1,0) and an isometric view is (1,-1,1).
* {{PropertyData|XDirection|Vector}}: This vector controls the rotation of the view around the Direction. {{Version|0.19}}.
* {{PropertyData|XDirection|Vector}}: This vector controls the rotation of the view around the Direction.
* {{PropertyData|Perspective|Bool}}: True for perspective projection, false for orthogonal projection.
* {{PropertyData|Perspective|Bool}}: {{TRUE}} for perspective projection, {{FALSE}} for orthogonal projection.
* {{PropertyData|Focus|Distance}}: Distance from camera to projection plane for perspective projections. Needs to be adjusted to fit the object. Too far and the perspective is lost, too close and the object is distorted.
* {{PropertyData|Focus|Distance}}: Distance from camera to projection plane for perspective projections. Needs to be adjusted to fit the object. Too far and the perspective is lost, too close and the object is distorted.


=== View === <!--T:28-->
=== View === <!--T:28-->


<!--T:30-->
{{TitleProperty|Base}}
{{TitleProperty|Base}}


<!--T:31-->
* {{PropertyView|Keep Label|Bool}}: Always show View Label if true.
* {{PropertyView|Stack Order|Integer}}: Over or under lap relative to other views.
* {{PropertyView|Keep Label|Bool}}: Always show view label if {{TRUE}}. (1)
* {{PropertyView|Stack Order|Integer}}: Over or under lap relative to other views. (1) {{Version|0.21}}


<!--T:32-->
{{TitleProperty|Decoration}}
{{TitleProperty|Decoration}}


<!--T:33-->
* {{PropertyView|Arc Center Marks|Bool}}: Circular arc center marks on/off.
* {{PropertyView|Arc Center Marks|Bool}}: Circular arc center marks on/off.
* {{PropertyView|Center Scale|Float}}: Circular arc center mark size adjustment, if enabled.
* {{PropertyView|Center Scale|Float}}: Circular arc center mark size adjustment, if enabled.
Line 109: Line 122:
* {{PropertyView|Vert Center Line|Bool}}: Show a vertical centerline through the view.
* {{PropertyView|Vert Center Line|Bool}}: Show a vertical centerline through the view.


<!--T:34-->
{{TitleProperty|Highlight}}
{{TitleProperty|Highlight}}


<!--T:35-->
* {{PropertyView|Highlight Adjust|Float}}: Adjust the rotation of the Detail highlight.
* {{PropertyView|Highlight Adjust|Float}}: Adjust the rotation of the Detail highlight if applicable.
* {{PropertyView|Highlight Line Color|Color}}: Set the highlight line color if applicable.
* {{PropertyView|Highlight Line Color|Color}}: Set the highlight line color if applicable.
* {{PropertyView|Highlight Line Style|Enumeration}}: Set the highlight line style if applicable.
* {{PropertyView|Highlight Line Style|Enumeration}}: Set the highlight line style if applicable.


<!--T:36-->
{{TitleProperty|Lines}}
{{TitleProperty|Lines}}


<!--T:37-->
* {{PropertyView|Extra Width|Length}}: Not implemented yet.
* {{PropertyView|Extra Width|Length}}: Not implemented yet.
* {{PropertyView|Hidden Width|Length}}: The thickness of hidden lines, if enabled.
* {{PropertyView|Hidden Width|Length}}: The thickness of hidden lines, if enabled.
* {{PropertyView|Iso Width|Length}}: The thickness of isometric(u,v) surface lines and Dimension lines.
* {{PropertyView|Iso Width|Length}}: The thickness of isometric(u,v) surface lines and Dimension lines.
* {{PropertyView|Line Width|Length}}: The thickness of visible lines. See [[TechDraw_LineGroup|Line Groups]].
* {{PropertyView|Line Width|Length}}: The thickness of visible lines. See [[TechDraw_LineGroup|Line Groups]].

<!--T:8-->
(1) these properties are common to all View types.


==Scripting== <!--T:6-->
==Scripting== <!--T:6-->


<!--T:15-->
<!--T:15-->
{{Emphasis|See also:}} [[TechDraw_API|TechDraw API]] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].


<!--T:16-->
<!--T:38-->
The View tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following functions:
A View can be created with [[Macros|macros]] and from the [[Python|Python]] console by using the following functions:


</translate>
</translate>
{{Code|code=
{{Code|code=
import FreeCAD as App
view = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View')

rc = page.addView(view)
FreeCAD.ActiveDocument.View.Source = [App.ActiveDocument.Box]
doc = App.ActiveDocument
box = doc.addObject("Part::Box", "Box")
FreeCAD.ActiveDocument.View.Direction = (0.0,0.0,1.0)

page = doc.addObject("TechDraw::DrawPage", "Page")
template = doc.addObject("TechDraw::DrawSVGTemplate", "Template")
template.Template = App.getResourceDir() + "Mod/TechDraw/Templates/A4_LandscapeTD.svg"
page.Template = template

# Toggle the visibility of the page to ensure its width and height are updated (hack):
page.Visibility = False
page.Visibility = True

view = doc.addObject("TechDraw::DrawViewPart", "View")
page.addView(view)
view.Source = [box]
view.Direction = (0, 0, 1)

view.X = page.PageWidth / 2
view.Y = page.PageHeight / 2

doc.recompute()
}}
}}
<translate>
<translate>

Revision as of 16:51, 25 July 2023

TechDraw View

Menu location
TechDraw → TechDraw Views → Insert View
Workbenches
TechDraw
Default shortcut
None
Introduced in version
-
See also
TechDraw Projection Group, TechDraw Section View

Description

The TechDraw View tool adds a representation of one or more objects to a Drawing page. This is the basic building block of the TechDraw workbench. Most other Views are derived in some way from View.

View will try to draw anything with a Shape property. You can select sketches, PartDesign Bodies, Draft objects etc. View will also extract any shapes from objects within a Std Part or a Std Group.

View of a solid box with hidden lines

Usage

  1. Optionally rotate the 3D view. Unless a face is selected in the next step, the camera direction in the 3D view determines the initial value of the DataDirection property of the View.
  2. Select one or more objects in the 3D view or Tree view. When selecting in the 3D view the first selected face determines the initial value of the DataDirection property.
  3. If there are multiple drawing pages in the document: optionally add the desired page to the selection by selecting it in the Tree view.
  4. There are several ways to invoke the tool:
    • Press the Insert View button.
    • Select the TechDraw → TechDraw Views → Insert View option from the menu.
  5. If there are multiple drawing pages in the document and you have not yet selected a page, the Page Chooser dialog box opens: introduced in version 0.20
    1. Select the desired page.
    2. Press the OK button.

Properties

Data

Base

  • DataX (Distance): The view's horizontal position on the page. (1)
  • DataY (Distance): The view's vertical position on the page. (1)
  • DataLock Position (Bool): Prevents Views from being dragged in the Gui when true. The View can still be moved by changing X,Y properties. (1)
  • DataRotation (Angle): Counterclockwise rotation of the View on the page in degrees. (1)
  • DataScale Type (Enumeration): The scale type. Options: (1)
    • Page: Use the Page's scale setting.
    • Automatic: Fit the view to the page.
    • Custom: Use the scale defined by DataScale.
  • DataScale (FloatConstant): The view will be rendered on the page in Scale:1 ratio to the Source. (1)
  • DataCaption (String): Optional short text caption. (1)

Cosmetics

  • Data (Hidden)Cosmetic Vertexes (TechDraw::PropertyCosmeticVertexList)
  • Data (Hidden)Cosmetic Edges (TechDraw::PropertyCosmeticEdgeList)
  • Data (Hidden)Center Lines (TechDraw::PropertyCenterLineList)
  • Data (Hidden)Geom Formats (TechDraw::PropertyGeomFormatList)

HLR Parameters

  • DataCoarse View (Bool): If true, TechDraw will use a polygon approximation to calculate drawing geometry. If false, TechDraw will use a precision algorithm. CoarseView can be much faster for complex models. The quality of the drawing is reduced, since every curve is approximated as a series of short line segments. Vertices are not displayed in CoarseView since each short segment would result in two new Vertices and the display becomes cluttered. Linear Dimensions can be added to a CoarseView, but are unlikely to be useful.
  • DataSmooth Visible (Bool): Visible Smooth lines on/off.
  • DataSeam Visible (Bool): Visible Seam lines on/off.
  • DataIso Visible (Bool): Visible Isometric(u,v) lines on/off.
  • DataHard Hidden (Bool): Hidden lines on/off.
  • DataSmooth Hidden (Bool): Hidden Smooth lines on/off.
  • DataSeam Hidden (Bool): Hidden Seam lines on/off.
  • DataIso Hidden (Bool): Hidden Isometric(u,v) lines on/off.
  • DataIso Count (Integer): Number of Isometric(u,v) lines to draw on each face.

Projection

  • DataSource (LinkList): Links to the drawable objects to be depicted.
  • DataXSource (XLinkList): Links to the drawable objects in an external file.
  • DataDirection (Vector): This vector controls the direction from which you are viewing the object. +X is right, -X is left, +Y is rear, -Y is front (looking into the screen), +Z is up and -Z is down. So a Front view is (0,-1,0) and an isometric view is (1,-1,1).
  • DataXDirection (Vector): This vector controls the rotation of the view around the Direction.
  • DataPerspective (Bool): true for perspective projection, false for orthogonal projection.
  • DataFocus (Distance): Distance from camera to projection plane for perspective projections. Needs to be adjusted to fit the object. Too far and the perspective is lost, too close and the object is distorted.

View

Base

  • ViewKeep Label (Bool): Always show view label if true. (1)
  • ViewStack Order (Integer): Over or under lap relative to other views. (1) introduced in version 0.21

Decoration

  • ViewArc Center Marks (Bool): Circular arc center marks on/off.
  • ViewCenter Scale (Float): Circular arc center mark size adjustment, if enabled.
  • ViewHoriz Center Line (Bool): Show a horizontal centerline through the view.
  • ViewSection Line Color (Color): Set the section line color if applicable.
  • ViewSection Line Style (Enumeration): Set the section line style if applicable.
  • ViewShow All Edges (Bool): Temporarily show invisible lines.
  • ViewShow Section Line (Bool): Show/hide the section line if applicable.
  • ViewVert Center Line (Bool): Show a vertical centerline through the view.

Highlight

  • ViewHighlight Adjust (Float): Adjust the rotation of the Detail highlight if applicable.
  • ViewHighlight Line Color (Color): Set the highlight line color if applicable.
  • ViewHighlight Line Style (Enumeration): Set the highlight line style if applicable.

Lines

  • ViewExtra Width (Length): Not implemented yet.
  • ViewHidden Width (Length): The thickness of hidden lines, if enabled.
  • ViewIso Width (Length): The thickness of isometric(u,v) surface lines and Dimension lines.
  • ViewLine Width (Length): The thickness of visible lines. See Line Groups.

(1) these properties are common to all View types.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

A View can be created with macros and from the Python console by using the following functions:

import FreeCAD as App

doc = App.ActiveDocument
box = doc.addObject("Part::Box", "Box")

page = doc.addObject("TechDraw::DrawPage", "Page")
template = doc.addObject("TechDraw::DrawSVGTemplate", "Template")
template.Template = App.getResourceDir() + "Mod/TechDraw/Templates/A4_LandscapeTD.svg"
page.Template = template

# Toggle the visibility of the page to ensure its width and height are updated (hack):
page.Visibility = False
page.Visibility = True

view = doc.addObject("TechDraw::DrawViewPart", "View")
page.addView(view)
view.Source = [box]
view.Direction = (0, 0, 1)

view.X = page.PageWidth / 2
view.Y = page.PageHeight / 2

doc.recompute()