├── Demo
├── Demo001_quickstart.FCStd
├── Demo002_constraints.FCStd
├── Demo003_multi.FCStd
├── Demo004_pads_mirror.FCStd
├── Demo005_edgeband.FCStd
├── Demo006_holes.FCStd
├── Demo007_drawer.FCStd
├── Demo008_drawer_links.FCStd
├── Demo009_approximation.FCStd
├── README.md
└── Screenshots
│ ├── Demo001
│ ├── 001.png
│ └── 002.png
│ ├── Demo002
│ ├── 001.png
│ └── 002.png
│ ├── Demo003
│ ├── 001.png
│ └── 002.png
│ ├── Demo004
│ ├── 001.png
│ └── 002.png
│ ├── Demo005
│ ├── 001.png
│ └── 002.png
│ ├── Demo006
│ ├── 001.png
│ └── 002.png
│ ├── Demo007
│ ├── 001.png
│ └── 002.png
│ ├── Demo008
│ ├── 001.png
│ └── 002.png
│ └── Demo009
│ ├── 001.png
│ └── 002.png
├── Docs
├── README.md
├── Screenshots
│ ├── 32System001.png
│ ├── 32System002.png
│ ├── 32System003.png
│ ├── 32System004.png
│ ├── 32System005.png
│ ├── 32System006.png
│ ├── 32System007.png
│ ├── ARDecoration001.png
│ ├── ARDecoration002.png
│ ├── ARGrain001.png
│ ├── ARGrain002.png
│ ├── ARMeasurements001.png
│ ├── ARMeasurements002.png
│ ├── ARMounting001.png
│ ├── ARMounting002.png
│ ├── ARMounting003.png
│ ├── ARProfiles001.png
│ ├── ARProfiles002.png
│ ├── ARProfiles003.png
│ ├── ARProfiles004.png
│ ├── CustomPart001.png
│ ├── CustomPart002.png
│ ├── CustomPart003.png
│ ├── CustomPart004.png
│ ├── CustomPart005.png
│ ├── Edgeband001.png
│ ├── Edgeband002.png
│ ├── Edgeband003.png
│ ├── Edgeband004.png
│ ├── Edgeband005.png
│ ├── Edgeband006.png
│ ├── Edgeband007.png
│ ├── FPartCube001.png
│ ├── FPartCube002.png
│ ├── FPartPad001.png
│ ├── FPartPad002.png
│ ├── FPartPad003.png
│ ├── FPartPad004.png
│ ├── PDHole001.png
│ ├── PDHole002.png
│ ├── PDHole003.png
│ ├── PDHole004.png
│ ├── PDHole005.png
│ ├── PDHole006.png
│ ├── PDHole007.png
│ ├── PDHole008.png
│ ├── PDHole009.png
│ ├── Precision001.png
│ ├── Precision002.png
│ ├── Precision003.png
│ ├── Precision004.png
│ ├── RConstraints001.png
│ ├── RConstraints002.png
│ ├── RConstraints003.png
│ ├── REdge001.png
│ ├── REdge002.png
│ ├── RPartCut001.png
│ ├── RPartCut002.png
│ ├── RPartCut003.png
│ ├── RPartCut004.png
│ ├── RPartCut005.png
│ ├── RVisibility001.png
│ ├── RVisibility002.png
│ ├── RVisibility003.png
│ ├── RVisibility004.png
│ ├── RVisibility005.png
│ ├── RVisibility006.png
│ ├── RVisibility006a.png
│ ├── RVisibility006b.png
│ ├── RVisibility006c.png
│ ├── RVisibility007.png
│ ├── RVisibility008.png
│ ├── RVisibility009.png
│ ├── RVisibility010.png
│ ├── RVisibility011.png
│ ├── ReportTypeA001.png
│ ├── ReportTypeA002.png
│ ├── ReportTypeA003.png
│ ├── ReportTypeA004.png
│ ├── ReportTypeA005.png
│ ├── ReportTypeA006.png
│ ├── ReportTypeC001.png
│ ├── ReportTypeC002.png
│ ├── ReportTypeD001.png
│ ├── ReportTypeE001.png
│ ├── ReportTypeG001.png
│ ├── ReportTypeN001.png
│ ├── ReportTypeP001.png
│ ├── ReportTypeQ001.png
│ ├── TALink001.png
│ ├── TALink002.png
│ ├── TDraftArray001.png
│ ├── TDraftArray002.png
│ ├── TDraftArray003.png
│ ├── TDraftArrayPolar001.png
│ ├── TDraftArrayPolar002.png
│ ├── TDraftClone001.png
│ ├── TDraftClone002.png
│ ├── TDraftClone003.png
│ ├── TPDHole001.png
│ ├── TPDHole002.png
│ ├── TPDHole003.png
│ ├── TPDHole004.png
│ ├── TPDLinearPattern001.png
│ ├── TPDLinearPattern002.png
│ ├── TPDLinearPattern003.png
│ ├── TPartDesignChamfer001.png
│ ├── TPartDesignChamfer002.png
│ ├── TPartDesignFillet001.png
│ ├── TPartDesignFillet002.png
│ ├── TPartDesignMirrored001.png
│ ├── TPartDesignMirrored002.png
│ ├── TPartDesignMultiTransform001.png
│ ├── TPartDesignMultiTransform002.png
│ ├── TPartDesignPocket001.png
│ ├── TPartDesignPocket002.png
│ ├── TPartDesignThickness001.png
│ ├── TPartDesignThickness002.png
│ ├── TPartMirroring001.png
│ ├── TPartMirroring002.png
│ ├── TPartMirroring003.png
│ ├── TPartMirroring004.png
│ ├── WoodProperties001.png
│ ├── WoodProperties002.png
│ ├── WoodProperties003.png
│ ├── ds001.png
│ ├── exA001.png
│ ├── exA002.png
│ ├── exA003.png
│ ├── exB001.png
│ ├── exB002.png
│ ├── exB003.png
│ ├── exB004.png
│ └── exB005.png
└── makeTOC.py
├── LICENSE
├── README.md
├── Screenshots
├── edgeband_issue.png
├── lang_en.png
├── lang_en2.png
├── lang_pl.png
└── matrix
│ ├── c1r1.png
│ ├── c1r2.png
│ ├── c1r3.png
│ ├── c1r4.png
│ ├── c1r5.png
│ ├── c2r1.png
│ ├── c2r2.png
│ ├── c2r3.png
│ ├── c2r4.png
│ └── c2r5.png
├── Test
├── README.md
├── Test001_features.FCStd
├── Test002_edgeband.FCStd
├── Test003_holes.FCStd
├── bin
│ └── autotest.bash
└── results
│ ├── Test001_features - toCut.md
│ ├── Test002_edgeband - toCut.md
│ └── Test003_holes - toCut.md
└── getDimensions.py
/Demo/Demo001_quickstart.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo001_quickstart.FCStd
--------------------------------------------------------------------------------
/Demo/Demo002_constraints.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo002_constraints.FCStd
--------------------------------------------------------------------------------
/Demo/Demo003_multi.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo003_multi.FCStd
--------------------------------------------------------------------------------
/Demo/Demo004_pads_mirror.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo004_pads_mirror.FCStd
--------------------------------------------------------------------------------
/Demo/Demo005_edgeband.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo005_edgeband.FCStd
--------------------------------------------------------------------------------
/Demo/Demo006_holes.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo006_holes.FCStd
--------------------------------------------------------------------------------
/Demo/Demo007_drawer.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo007_drawer.FCStd
--------------------------------------------------------------------------------
/Demo/Demo008_drawer_links.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo008_drawer_links.FCStd
--------------------------------------------------------------------------------
/Demo/Demo009_approximation.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Demo009_approximation.FCStd
--------------------------------------------------------------------------------
/Demo/README.md:
--------------------------------------------------------------------------------
1 | # Table of Contents
2 |
3 | 1. [Demo001_quickstart](#demo001_quickstart)
4 | 2. [Demo002_constraints](#demo002_constraints)
5 | 3. [Demo003_multi](#demo003_multi)
6 | 4. [Demo004_pads_mirror](#demo004_pads_mirror)
7 | 5. [Demo005_edgeband](#demo005_edgeband)
8 | 6. [Demo006_holes](#demo006_holes)
9 | 7. [Demo007_drawer](#demo007_drawer)
10 | 8. [Demo008_drawer_links](#demo008_drawer_links)
11 | 9. [Demo009_approximation](#demo009_approximation)
12 |
13 | ## Demo001_quickstart
14 |
15 | This is the quickstart with furniture parts examples. I use this demo for documentation purposes. This is good start for feature testing or learning FreeCAD woodworking.
16 |
17 | | | |
18 | |---|---|
19 | |  |  |
20 |
21 | ## Demo002_constraints
22 |
23 | This demo example shows how to create dowels, pilot holes and countersinks at FreeCAD. Also You can generate `c - report type` to see named constraints report.
24 |
25 | | | |
26 | |---|---|
27 | |  |  |
28 |
29 | ## Demo003_multi
30 |
31 | This demo example shows how to create custom furniture element with dowels, pilot holes and countersinks and use it to create furniture. This demo use such FreeCAD features as: `Draft :: Clone` and `Part :: Mirroring` on whole `Body`. So, You can see how to use whole `Body` as the furniture part.
32 |
33 | | | |
34 | |---|---|
35 | |  |  |
36 |
37 | ## Demo004_pads_mirror
38 |
39 | This demo example shows how to use Spreadsheet for furniture resize. You can change top table size, legs offset just by changing values at Spreadsheet. Also if You generate report again You got new dimensions. This demo also shows how to use `PartDesign :: MultiTransform` FreeCAD feature correctly to create legs or top table supporters very quickly.
40 |
41 | | | |
42 | |---|---|
43 | |  |  |
44 |
45 | ## Demo005_edgeband
46 |
47 | This demo example shows how to correctly apply edgeband under the FreeCAD. To generate detailed report for edgeband [e - report type](https://github.com/dprojects/getDimensions/tree/master/Docs#e---report-type) You have to select `white` for furniture color because the furniture is all white with black edgeband. This demo example is the real-life furniture I made in my garage. It is very modular and the structure is very durable because each shelf rests on the sides. Also it has been updated with screws and dowels via `magicDowels` tool, see at [Woodworking workbench - fixture examples](https://github.com/dprojects/Woodworking/tree/master/Examples/Fixture).
48 |
49 | | | |
50 | |---|---|
51 | |  |  |
52 |
53 | ## Demo006_holes
54 |
55 | This demo example shows how to create furniture with all details. This furniture has applied edgeband. Also there are used custom elements with pilot holes and countersinks and advanced FreeCAD features. You can test detailed report `d - report type` with advanced features in practice here. This example is based on the real-life furniture I made in the past. It has open back part for wires, good for TV set or any media.
56 |
57 | | | |
58 | |---|---|
59 | |  |  |
60 |
61 | ## Demo007_drawer
62 |
63 | This demo example shows how to create drawer driven from spreadsheet at FreeCAD. You can change any size at spreadsheet and the drawer will change dimensions. Also You can generate new report.
64 |
65 | | | |
66 | |---|---|
67 | |  |  |
68 |
69 | ## Demo008_drawer_links
70 |
71 | This demo example shows how to quickly make more copies of drawer. This example use such FreeCAD features as: `App :: Link` and `App :: LinkGroup`.
72 |
73 | | | |
74 | |---|---|
75 | |  |  |
76 |
77 | ## Demo009_approximation
78 |
79 | This is the same furniture from my garage but here the Tree structure is adjusted to [a - report type](https://github.com/dprojects/getDimensions/tree/master/Docs#a---report-type). It is real-life project and has correctly applied edgeband, so this can be good testing sample for further approximation report development.
80 |
81 | | | |
82 | |---|---|
83 | |  |  |
84 |
85 |
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo001/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo001/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo001/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo001/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo002/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo002/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo002/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo002/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo003/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo003/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo003/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo003/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo004/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo004/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo004/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo004/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo005/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo005/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo005/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo005/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo006/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo006/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo006/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo006/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo007/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo007/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo007/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo007/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo008/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo008/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo008/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo008/002.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo009/001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo009/001.png
--------------------------------------------------------------------------------
/Demo/Screenshots/Demo009/002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Demo/Screenshots/Demo009/002.png
--------------------------------------------------------------------------------
/Docs/README.md:
--------------------------------------------------------------------------------
1 | # Table of Contents
2 |
3 | * [Default Settings](#default-settings)
4 | * [Furniture parts](#furniture-parts)
5 | * [Cube - quickstart](#cube---quickstart)
6 | * [Pad - quickstart](#pad---quickstart)
7 | * [Design furniture not the furniture parts](#design-furniture-not-the-furniture-parts)
8 | * [Basic furniture example](#basic-furniture-example)
9 | * [Report type](#report-type)
10 | * [q - report type](#q---report-type)
11 | * [n - report type](#n---report-type)
12 | * [g - report type](#g---report-type)
13 | * [e - report type](#e---report-type)
14 | * [d - report type](#d---report-type)
15 | * [c - report type](#c---report-type)
16 | * [p - report type](#p---report-type)
17 | * [a - report type](#a---report-type)
18 | * [Additional reports](#additional-reports)
19 | * [Custom measurements](#custom-measurements)
20 | * [Dowels and Screws](#dowels-and-screws)
21 | * [Construction profiles](#construction-profiles)
22 | * [Decoration](#decoration)
23 | * [Grain Direction](#grain-direction)
24 | * [Visibility](#visibility)
25 | * [Visibility: off](#visibility-off)
26 | * [Visibility: on](#visibility-on)
27 | * [Visibility: edge](#visibility-edge)
28 | * [Visibility: parent](#visibility-parent)
29 | * [Visibility: inherit](#visibility-inherit)
30 | * [special BOM attribute](#special-bom-attribute)
31 | * [Part :: Cut content visibility](#part--cut-content-visibility)
32 | * [Part :: Cut content visibility: all](#part--cut-content-visibility-all)
33 | * [Part :: Cut content visibility: base](#part--cut-content-visibility-base)
34 | * [Part :: Cut content visibility: tool](#part--cut-content-visibility-tool)
35 | * [Precision](#precision)
36 | * [Edge size](#edge-size)
37 | * [Report - export](#report---export)
38 | * [Transformations](#transformations)
39 | * [Part :: Mirroring](#part--mirroring)
40 | * [Draft :: Array](#draft--array)
41 | * [Draft :: Array Polar](#draft--array-polar)
42 | * [Draft :: Clone](#draft--clone)
43 | * [PartDesign :: Hole](#partdesign--hole)
44 | * [PartDesign :: Pocket](#partdesign--pocket)
45 | * [PartDesign :: LinearPattern](#partdesign--linearpattern)
46 | * [PartDesign :: Mirrored](#partdesign--mirrored)
47 | * [PartDesign :: MultiTransform](#partdesign--multitransform)
48 | * [App :: LinkGroup and App :: Link](#app--linkgroup-and-app--link)
49 | * [Advanced furniture example](#advanced-furniture-example)
50 | * [Woodworking - usage examples](#woodworking---usage-examples)
51 | * [Constraints - totally custom report](#constraints---totally-custom-report)
52 | * [Wood Properties - grain, type, color, etc.](#wood-properties---grain-type-color-etc)
53 | * [Edgeband](#edgeband)
54 | * [Edgeband - quick way](#edgeband---quick-way)
55 | * [Edgeband - described](#edgeband---described)
56 | * [Edgeband - detailed by selection](#edgeband---detailed-by-selection)
57 | * [Dowels, pilot holes, countersinks](#dowels-pilot-holes-countersinks)
58 | * [Custom furniture part](#custom-furniture-part)
59 | * [32 mm cabinetmaking system](#32-mm-cabinetmaking-system)
60 | * [Known issues](#known-issues)
61 |
62 | ___
63 | # Default Settings
64 |
65 | This macro supports `Qt Graphical User Interface (GUI)`, so You can quickly change the settings by scrolling the mouse wheel. This screenshot below represents the `Default Settings`:
66 |
67 | 
68 |
69 | If for some reasons would You like to turn off the `Qt Graphical User Interface (GUI)`, just edit the macro code and set the variable `sQT` to `"no"`. All the `Default Settings` will be set from the variables in the macro code.
70 |
71 | **Note:** Some reports screenshots are presented with `Report type` variable set to `n` and `Report quality` set to `eco`, for better readability.
72 |
73 | ___
74 | # Furniture parts
75 |
76 | Furniture parts are base objects for building furniture, base construction element. Each object needs to have three dimensions (`Width`, `Height`, `Length`) to be considered as the furniture part. Also it needs to have rectangular shape (four edges), to calculate area and edge size. You can consider furniture part as wood board, or even better, the rectangular chipboard.
77 |
78 | ___
79 | ## Cube - quickstart
80 |
81 | Cube is the easiest way to create furniture. You can create it just by single button click. To do that, just follow steps:
82 |
83 | * Go to `FreeCAD > Part > Create a cube solid > Cube data (tab)`
84 | * Set `Length` to e.g. 300
85 | * Set `Width` to e.g. 600
86 | * Set `Height` to e.g. 18
87 |
88 | 
89 |
90 | **Note**: Now You should have furniture part `300 mm x 600 mm x 18 mm`. You can create any furniture You like using such furniture part, even group them in folders.
91 |
92 | * Now, just run the macro, to get report `toPrint`:
93 |
94 | 
95 |
96 | ___
97 | ## Pad - quickstart
98 |
99 | Pad is not base object. In fact, it is a transformation on the `Sketch` object. However, for the macro purposes it is considered as base element for furniture building, furniture part. Mostly because the `Sketch` is not real-life object, because it has only two dimensions. To start with Pad furniture part, You have to create `Sketch` object first.
100 |
101 | * To create `Sketch` compliant with the macro You should use only the drawing object marked with the red border:
102 |
103 | 
104 |
105 | **Note:** `Sketch` object do not recognize what shape it is and do not keep such information, so if this will be something different than rectangle or square the macro will not be able to get dimensions for the final Pad object.
106 |
107 | * You should have `Sketch` like this:
108 |
109 | 
110 |
111 | **Note:** This `Sketch` is fully constrained because the right bottom corner is connected with the center of `XY`.
112 |
113 | * If You have the `Sketch` created already, just click the `Sketch` object and then the icon bordered in red at the screenshot below. The icon is also zoomed at the image:
114 |
115 | 
116 |
117 | **Note**: Now You should have furniture part `300 mm x 600 mm x 18 mm`. You can create any furniture You like using such furniture part, even group them in folders.
118 |
119 | * Now, just run the macro, to get report `toPrint`:
120 |
121 | 
122 |
123 | **Note:** Normally, when You are creating Pad object, the related Sketch object should be in the "Pad folder" (object content). If You do not have such tree structure, please make sure each Pad object has the correct reference in the `Profile` structure. Sketch dimensions are getting from Pad, exactly from `.Profile[0].Shape.OrderedEdges[0].Length` and `.Profile[0].Shape.OrderedEdges[1].Length`. The last dimension is getting from Pad as well, but this time, exactly from `.Length.Value`. So, the key point it that, the values need to be accessible and correct to get it to work.
124 |
125 | > [!NOTE]
126 | > There is also support for:
127 | > * `Part :: Extrusion` objects
128 | > * custom objects with Width, Height and Length attribute, for example [Stick Frame Workbench objects](https://gitlab.com/mathcodeprint/stickframe).
129 |
130 | ___
131 | ## Design furniture not the furniture parts
132 |
133 | Personally, I used to design everything with `Cube` furniture part. With calculator and `Placement` option I was able to design any furniture I needed, even some tools like doweling jig. Designing simple furniture with `Cube` takes about 5 minutes and You can just use `CTRL-C` and `CTRL-V` keys to multiply quickly the `Cube` furniture part, move it and change some dimensions, if needed.
134 |
135 | However, I see the power of `Pad`. The `Pad` furniture part is better supported by FreeCAD. I would say, this is how it should be designed under the FreeCAD. First You should create `Sketch` object, make it fully constrained and use `Pad` option on the fully constrained `Sketch`. It takes more time and effort but You can use more transformations then and such furniture is more compliant with FreeCAD point of view.
136 |
137 | However, if You are new FreeCAD user and You want design single furniture, I would **strongly recommend to start with `Cube`**. Your `workbench` to start should be `Part` not `Part Design`. You should not try to design furniture part to design furniture. It is not needed, the best furniture part for furniture designing is already there at `Part` workbench and is named `Cube`. Designing furniture parts should be left for FreeCAD developers or for really advanced projects and designers familiar with FreeCAD. The `Cube` furniture part is more macro friendly, the object shape is known and the dimensions are easy to get, this is the way it should be for furniture design.
138 |
139 | The main problem with `Pad` is that the `Sketch` does not know what shape You drew, so You have to know what You are doing, to use the macro later. If You draw strange shape and `Pad` it later, You will not be able to get the correct dimensions from the final `Pad` object. However, You can always extend Your knowledge, to use transformations supported by FreeCAD for `Pad` only.
140 |
141 | ___
142 | ## Basic furniture example
143 |
144 | * Create `Cube` furniture part using the `Cube` dimensions bordered at the image:
145 |
146 | 
147 |
148 | * Click the created `Cube` and press `CTRL-C` and `CTRL-V`, to make a copy of the `Cube` furniture part. You should have new `Cube1` created:
149 |
150 | 
151 |
152 | * The `Cube1` is at the same place as `Cube`, this is why it is not visible at the 3D model. To move the `Cube1` to the right place, click the `Cube1` at the `Tree` view and change its `Placement` values:
153 |
154 | 
155 |
156 | * You can create any furniture using this method very quickly, rename the folders and objects names:
157 |
158 | 
159 |
160 | * Now, just run the macro, to get report `toPrint`:
161 |
162 | 
163 |
164 | ___
165 | # Report type
166 |
167 | This macro allows You to select the type of report to be displayed. Some types of reports are very complex and can be many pages long for the real-life project. Some types of reports also require special settings in the project. The type of report should be selected according to Your needs and the design of the project. It is best to start with the simplest type of report.
168 |
169 | ___
170 | ## q - report type
171 |
172 | This type of report is `default` type of report. It is the shortest one. It can be used for huge projects to make simple short report. Also if You do not need to take care of something like `grain direction`, `detailed edgeband`, `wood type`, `wood color`, this type of report is just for You. Personally, I prefer this type of report the most. Also this type of report has space at the left side, so You can add extra notes later after print.
173 |
174 | * To create the quantity report just set `Report type` variable to `q` and run the macro:
175 |
176 | 
177 |
178 | ___
179 | ## n - report type
180 |
181 | This type of report is mostly used by me for documentation purposes. It is simple objects listing. However, it can be very useful for project verification. You can list all objects and see if the dimensions are set correctly.
182 |
183 | * To create the name report just set `Report type` variable to `n` and run the macro:
184 |
185 | 
186 |
187 | ___
188 | ## g - report type
189 |
190 | This type of report is very useful to divide furniture parts into categories. It can be used for `grain direction`, `detailed edgeband`, `wood type`, `wood color` or for any other category. Also, the `Thickness` column is just after the `Name` column. This is because if You go to cutting chipboards service, first You give `wood color`, second the `thickness`, next `dimensions` and `quantity` at the end. This approach simplifies the more detailed ordering process.
191 |
192 | * To create the group report just set `Report type` variable to `g` and run the macro:
193 |
194 | 
195 |
196 | **Note:** For this report type, You need to have exact folder tree structure in Your furniture project. The idea behind this is that each element needs to have parent folder or also grandparent folder. First the grandparent folder is getting and if there is no grandparent folder there will be parent folder name at the report. For the `Pad` furniture part, the `Body` object is considered as parent folder. To add grandparent folder for `Pad` it needs to be in the parent folder (e.g. named `Furniture_pad`) together with its `Body`. This type of report supports `Group` and `LinkGroup`.
197 |
198 | For more details see: [Wood Properties - grain, type, color, etc.](#wood-properties---grain-type-color-etc) section.
199 |
200 | ___
201 | ## e - report type
202 |
203 | This type of report is designed for edgeband. Also You can verify if Your 3D model have correctly applied veneer. This type of report recognize automatically if the covered `face` is `surface` or `edge`. Also shows the dimension for `edge` type of face and given `edgeband code`.
204 |
205 | * To create the extended edge report just set `Report type` variable to `e` and run the macro:
206 |
207 | 
208 |
209 | **Note:**
210 |
211 | * Each column represents `face` object number at 3D model.
212 | * If Your furniture part `Height` is `Thickness` the `1`, `2`, `3`, `4` will be recognized as `edge`, and `5`, `6` will be `surface`. If Your 3D model is designed differently the columns `5`, `6` may be covered with veneer but this will be recognized as `edge`.
213 | * Some transformations can have more than 6 faces. To apply veneer correctly for transformation make sure You add `face color` at base object. You have to change the base object visibility first.
214 | * All faces with other color than `object color` will be considered as edgeband. If You want to use the edgeband feature, the best way is to leave the furniture without color and apply only color for faces that need to be covered with veneer.
215 | * Report for multi-color furniture can be achieved by making two reports for each color (use [Visibility](#visibility) feature to hide each color).
216 | * The edgeband color at 3D model does not matter. `Edgeband code` is only text that will be displayed at report. It can represent any veneer tape color at shop, even reference code. The spreadsheet column width is limited, however at HTML export this can be extended.
217 | * This type of report can exceed a single TechDraw page. To export this type of report, see the [Report - export](#report---export) section.
218 |
219 | ___
220 | ## d - report type
221 |
222 | This type of report might be useful for raw wood projects, CNC or very detailed furniture design, because it is designed for very detailed view of edgeband, holes and countersinks. Also it allows for long description based on group name. Regarding edgeband it works like [e - report type](#e---report-type) but has also additional part for holes and countersinks.
223 |
224 | * To create the extended edge report just set `Report type` variable to `d` and run the macro:
225 |
226 | 
227 |
228 | **Note:**
229 |
230 | * Each column represents `face` object number at 3D model.
231 | * If Your furniture part `Height` is `Thickness` the `1`, `2`, `3`, `4` will be recognized as `edge`, and `5`, `6` will be `surface`. If Your 3D model is designed differently the columns `5`, `6` may be covered with veneer but this will be recognized as `edge`.
232 | * Some transformations can have more than 6 faces. To apply veneer correctly for transformation make sure You add `face color` at base object. You have to change the base object visibility first.
233 | * All faces with other color than `object color` will be considered as edgeband. If You want to use the edgeband feature, the best way is to leave the furniture without color and apply only color for faces that need to be covered with veneer.
234 | * Report for multi-color furniture can be achieved by making two reports for each color (use [Visibility](#visibility) feature to hide each color).
235 | * The edgeband color at 3D model does not matter. `Edgeband code` is only text that will be displayed at report. It can represent any veneer tape color at shop, even reference code. The spreadsheet column width is limited, however at HTML export this can be extended.
236 | * The holes and countersinks are taken from `constraints names` of the base object of the group. For example if You make `MultiTransform` You have to set the `constraints names` at the base object.
237 | * If the hole is "through all" there is no `Depth`.
238 | * This type of report can exceed a single TechDraw page. To export this type of report, see the [Report - export](#report---export) section.
239 |
240 | ___
241 | ## c - report type
242 |
243 | This type of report is totally custom and it is supported only for `Pad` furniture parts. It can be used as additional report for any other type of report. This type of report can provide such information as: offset, radius, doweling, holes, bar codes, reference numbers, detailed edge banding or any other description You add for dimension (`constraints name`).
244 |
245 | * To set `constraint` dimension at the desired object place, You can move the `Sketch XY` by changing the `Position` of `Sketch`:
246 |
247 | 
248 |
249 | * To create the constraints report just set `Report type` variable to `c` and run the macro:
250 |
251 | 
252 |
253 | **Note:**
254 |
255 | * Each row represents `constraints name` description and dimension.
256 | * The `Length` dimension is the `Length` dimension for `Sketch > Pad` option.
257 | * This type of report can exceed a single TechDraw page. To export this type of report just see the [Report - export](#report---export) section.
258 |
259 | For more details see: [Constraints - totally custom report](#constraints---totally-custom-report) section.
260 |
261 | ___
262 | ## p - report type
263 |
264 | This type of report is designed for projects based only on `Pads`. Especially, if You created project with `Pads`, very detailed, but do not have `constraints names`. If You want to get all the non-zero constraints, even those without names, this report is for You. It can be used as additional report for any other type of report, for example if You have also `Cubes` You can generate other report designed for `Cubes`.
265 |
266 | * To create the pads report just set `Report type` variable to `p` and run the macro:
267 |
268 | 
269 |
270 | **Note:**
271 |
272 | * Each row represents `constraints name` description and dimension.
273 | * The `Length` dimension is the `Length` dimension for `Sketch > Pad` option.
274 | * This type of report can exceed a single TechDraw page. To export this type of report just see the [Report - export](#report---export) section.
275 | * Zero constraints should be generally avoided, so they are skipped to not overload the report.
276 |
277 | ___
278 | ## a - report type
279 |
280 | This report is some kind of approximation of needed material. It uses different approach to dimensions, because the dimensions are not get here from objects, they are calculated from raw vertices.
281 |
282 | You have to be careful because the dimensions are rounded and given in raw form. In fact the dimensions here are not real objects dimensions, they are some kind of occupied space in 3D by the object. You can see the difference for all rotated elements. For rotated elements the occupied space in 3D will not be the same as dimensions.
283 |
284 | However, this approach might be very useful at furniture designing process if You know how it works. Normally, all the `Pad` or `Cube` elements, should be created according to the `XYZ` plane, so You will not see the difference in this case between real dimensions and occupied space in 3D.
285 |
286 | It has been inspired by [Dimensions of not-rectangle #8](https://github.com/dprojects/getDimensions/issues/8) issue and can be very useful for irregular shapes, to caclulate needed material. Also, You can use it if You cut wood on Your own and You do not have waste material. This type of report can be directly imported at [cutlistoptimizer.com](https://www.cutlistoptimizer.com/) website tool.
287 |
288 | * For sample objects:
289 |
290 | 
291 |
292 | * The calculated report looks like this below:
293 |
294 | 
295 |
296 | **Note:** This is because all the objects take the same space in 3D. Also the `Circle` object is not supported because it does not have exact vertices information for calculation `(0, 0, 18)`.
297 |
298 | * However, this report can be exported to CSV and directly imported at [cutlistoptimizer.com](https://www.cutlistoptimizer.com/):
299 |
300 | 
301 |
302 | * For normal `Cube` furniture, works without missing parts and with accurate dimensions:
303 |
304 | 
305 |
306 | * Directly imported at [cutlistoptimizer.com](https://www.cutlistoptimizer.com/):
307 |
308 | 
309 |
310 | * To have added automatically "grain direction" and "custom label" You have to create exact folder structure. Folder label structure should be: `label, grain`. The comma and space is important and it is separator to split label from grain information. For more details see: [Demo009_approximation](https://github.com/dprojects/getDimensions/tree/master/Demo#demo009_approximation).
311 |
312 | 
313 |
314 | ## Additional reports
315 |
316 | There are also additional reports that can be generated. By default if any of those objects exists at Your project the additional report will be shown with the content. However, You can turn off any additional report type and choose the content You want to see there.
317 |
318 | ### Custom measurements
319 | **Supported:** `App::MeasureDistance`.
320 | ___
321 |
322 |
323 | * With the `Custom measurements` report You can generate report for measurements objects. The custom measurements can be easily added via [magicMeasure](https://github.com/dprojects/Woodworking/tree/master/Docs#magicmeasure) tool from [Woodworking workbench](https://github.com/dprojects/Woodworking):
324 |
325 | 
326 | 
327 |
328 | ___
329 | ### Dowels and Screws
330 | **Supported:** `Part::Cylinder`.
331 | ___
332 |
333 |
334 | * With the `Dowels and Screws` report You can generate report for screws, dowels and any other mounting points. It is recommended to use [magicDowels](https://github.com/dprojects/Woodworking/tree/master/Docs#magicdowels) tool from [Woodworking workbench](https://github.com/dprojects/Woodworking), because it takes only a while to add all the visible mounting points:
335 |
336 | 
337 |
338 | * The report for mounting points will be generated below normal report type:
339 |
340 | 
341 |
342 | * The header for mounting points is automatically generated by the `magicDowels` tool and the report get first word from object's label:
343 |
344 | 
345 |
346 | ___
347 | ### Construction profiles
348 | **Supported:** `PartDesign::Thickness`, `Dodo workbench profiles`.
349 | ___
350 |
351 |
352 | * With the `Construction profiles` report You can generate report for construction profiles. Using `PartDesign::Thickness` at 2 faces You can create profile and get information about the elements:
353 |
354 | 
355 | 
356 |
357 | * Also You can generate report for `Dodo workbench profiles`:
358 |
359 | 
360 | 
361 |
362 | ___
363 | ### Decoration
364 | **Supported:** `PartDesign::Fillet`, `PartDesign::Chamfer`, `Part::Sphere`, `Part::Cone`, `Part::Torus`.
365 | ___
366 |
367 |
368 | * With the `Decoration` report You can generate report for some decoration parts like e.g. drawer handle:
369 |
370 | 
371 | 
372 |
373 | ___
374 | ### Grain Direction
375 | **Supported:** `Horizontal`, `Vertical`
376 | ___
377 |
378 |
379 | * With the `Grain Direction` report You can generate report for each face:
380 |
381 | 
382 | 
383 |
384 | ___
385 | ## Visibility
386 |
387 | The `Visibility` option is related to visibility feature functionality. This feature have several options:
388 |
389 | ### Visibility: off
390 |
391 | * By default this feature is set to `off` allowing hidden content to be calculated and listed at the report. This option has been set to default because FreeCAD has many complicated objects with hidden content. For PartDesign objects usually, only the objects of last operation is visible but the first Pad with dimensions is hidden. Similar thing is for Cut objects where the content with dimensions is hidden but the Cut object has no information about dimensions of its parts.
392 |
393 | 
394 |
395 | ### Visibility: on
396 |
397 | * This option is mostly dedicated to simple `Cube` objects not `Part :: Cut` hidden behind deeply nested containers. This option turn on the feature basic functionality and You can create report by toggle visibility items or group of items. It can be useful especially for simple costs calculation. You can quickly calculate different types of wood by grouping them inside `Group`, or `LinkGroup` and toggle visibility of `Group` or `LinkGroup`:
398 |
399 | 
400 | 
401 |
402 | ### Visibility: edge
403 |
404 | * This option allows to show all hidden objects and groups but not add hidden objects to the edge size. This is useful if You want to calculate edgeband for different types of wood or colors. As You see below, all the objects are listed at the report but the edge size is calculated only for visible HDF element.
405 |
406 | 
407 |
408 | **Note:** See the [Edge size](#edge-size) section for more details.
409 |
410 | ### Visibility: parent
411 |
412 | * This option allows to inherit visibility from nearest container. You can hide only part of the sctructure. Even if the content is hidden by the higher container, the content from lower level will be listed if the nearest container is visible. This approach is more closer to those what FreeCAD user see at 3D view, but You need to know that FreeCAD 3D view, Grey object at Tree, and Visibility option not match with each other.
413 |
414 | 
415 | 
416 |
417 | * This option can be used for Cut direct elements linking where Link is inside the Cut structure but the Base parametric element is outside the Cut structure. Also all Cubes the Base outside the Cut and Link are invisible. Only the Cut container is visible. In this case you can show all elements, Base or Tool.
418 |
419 | 
420 | 
421 | 
422 |
423 | ### Visibility: inherit
424 |
425 | * This is the most advanced option and in my opinion the most powerful and useful for parametric modeling in practice. In this mode the feature inherits the visibility from the highest containers in the structure. If the highest container is hidden the content will not be listed, even if the nearest container and content is visible.
426 |
427 | 
428 |
429 | * If the highest container is visible but the lower container is not visible the content will inherit the visibility from the highest container and the content will be listed.
430 |
431 | 
432 |
433 | * This might be strange but this apparoach allows for visible content linking inside hidden container. So the base objects will be hidden and not calculated and only links will be visible and calculated.
434 |
435 | 
436 |
437 | * This option should be used with `LinkGroup` as a container not `Group`. This feature not inherit visibility from `Group` container to allow group more complicated parametric structures to be grouped in folder and have clear Tree structure. For example you can put all merged realistic screws in `Group` and link the base middle container. If you hide the highest container from the base screw the base screw will not be calculted and visible but the mounting points will be calculated correctly only using visible links. All structure will be well organized, clean, parametric and correctly calculated at the report.
438 |
439 | 
440 | 
441 |
442 | ### special BOM attribute
443 |
444 | * If object has `BOM` attribute set to `False` (`App::PropertyBool`) it will be skipped during parsing and not listed at the report. This special attribute is used by [magicCut](https://github.com/dprojects/Woodworking/tree/master/Docs#magiccut) and [magicKnife](https://github.com/dprojects/Woodworking/tree/master/Docs#magicknife) tools to skip copies at the report.
445 |
446 | For more details see video tutorial: [Skip copies in cut-list](https://www.youtube.com/watch?v=rFEDLaD8lxM)
447 |
448 | ___
449 | ## Part :: Cut content visibility
450 |
451 | This option is related to `Part :: Cut` structures. It allows to choose parsing method for the content of `Part :: Cut`.
452 |
453 | ### Part :: Cut content visibility: all
454 |
455 | * This option allows to show all the `Part :: Cut` structure.
456 |
457 | 
458 |
459 | * For example this is useful if You use [magicCut](https://github.com/dprojects/Woodworking/tree/master/Docs#magiccut) to create quick Dado joints. This tool creates copies of the objects, so the structure can be listed even if it is hidden. Only the common part is removed so the elements not change places.
460 |
461 | 
462 | 
463 |
464 | ### Part :: Cut content visibility: base
465 |
466 | * This option allows to show only `Base` elements from the `Part :: Cut` structure. This is FreeCAD Part Boolean Cut default apparoach, where the `Base` is the object after `Tool` operation.
467 |
468 | 
469 |
470 | ### Part :: Cut content visibility: tool
471 |
472 | * This option allows to show only `Tool` elements from the `Part :: Cut` structure.
473 |
474 | 
475 |
476 | ___
477 | ## Precision
478 |
479 | By default the values at report are rounded to have more clear listing. Rounding values also allows to avoid values at report like e.g. `499.9999999999` instead of `500 mm`. Generally during working with wood material it is rather hard to achieve precision better than `+/-1 mm`. Even professional cutting services are not able to keep always precision `+/-0 mm`, so precision like `+/- 0.1` is rather not possible in real life.
480 |
481 | * By default precision for `mm` units is `0`, it means the value `500.65 mm` will be rounded to `501 mm` at the report:
482 |
483 | 
484 | 
485 |
486 | * However, in some cases (see issue: [Dimensions in fractions of a millimeter #17](https://github.com/dprojects/getDimensions/tree/master/Docs#report---export)) you may want to have more detailed values at report to decide later about rounding values. In this case you can change the default precision value `0` to `2` to get more detailed report:
487 |
488 | 
489 | 
490 |
491 | For more details see video tutorial: [New precision option, BOM, cut-list](https://www.youtube.com/watch?v=UhOpI5we-_8)
492 |
493 | ___
494 | ## Edge size
495 |
496 | The `edge size` depends on `Visibility` option at the [Default Settings](#default-settings):
497 | * If the `Visibility` is set to `off` option then all objects are visible at the report and all edges are calculated.
498 | * If the `Visibility` is set to `edge` option then all objects are visible at the report but only edges of hidden objects are not calculated.
499 | * If the `Visibility` is set to `on` option then all hidden objects are skipped at report and at the `edge size` calculation.
500 |
501 | 
502 |
503 | **Note:** This `edge` option has been implemented at a time when there was no support for Transformations and even Pads. The Transformations hide base object. For example if You create MultiTransform, the base Pad object is hidden by default. If `Visibility` is set to `edge`, You have to make the base Pad object visible to calculate the `edge size` correctly. So, this `edge` option is no longer default. However, this option still can be very useful for quick edgeband approximation.
504 |
505 | * In the real world the `edge size` that needs to be covered with veneer is very often much smaller. However, selecting each edge (face of the object) might be too annoying and sometimes pointless if You have elements that will not be covered with veneer entirely. In that case, You can move them all into one directory, hide the entire directory, and set `Visibility` to `edge`:
506 |
507 | 
508 |
509 | **Note:** The `Cube` furniture part is hidden, so the `edge size` is different now. Also, the edge of the `Pad` furniture part has no veneer applied, so the extended edgeband info is automatically hidden.
510 |
511 | ___
512 | ## Report - export
513 |
514 | * You can generate different reports at the same furniture project. Just copy (`CTRL-C` and `CTRL-V`) and rename the spreadsheet `toCut` to store it and prevent it from an overwrite or export the TechDraw page `toPrint` to `pdf` file.
515 |
516 | * To export multi-page report or export many spreadsheets at once You can use my project created for this purpose here [sheet2export](https://github.com/dprojects/sheet2export).
517 |
518 | ___
519 | # Transformations
520 |
521 | For the macro purposes the transformation of a furniture part will be considered as any FreeCAD operation that creates a new object and simplifies the process of furniture design. To use the macro You should use the transformation only for supported furniture parts. Each transformation has information about supported objects (tested combinations).
522 |
523 | Do not use any transformation at `Sketch`, even if the FreeCAD allows for that. It might be good for FreeCAD purposes and the FreeCAD point of view but it is not supported by the macro for now.
524 |
525 | ___
526 | ## Part :: Mirroring
527 | **Supported:** `Cube`, `Pad`, `Body`, `Clone`.
528 | ___
529 |
530 | * To start with `Part :: Mirroring` transformation, You have to create the furniture part for transformation first. In this case this will be `Cube` furniture part:
531 |
532 | 
533 |
534 | * Click the `Cube` furniture part and create `Part :: Mirroring` transformation as it is demonstrated below:
535 |
536 | 
537 |
538 | * You should have `Part :: Mirroring` transformation created :
539 |
540 | 
541 |
542 | * Now, just run the macro, to get report `toPrint`:
543 |
544 | 
545 |
546 | ___
547 | ## Draft :: Array
548 | **Supported:** `Cube`, `Pad`, `Array on Array`, `Part :: Compound`.
549 | ___
550 |
551 | To start with `Draft :: Array` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
552 |
553 | * Click the `Pad` furniture part and create `Draft :: Array` as it is demonstrated below:
554 |
555 | 
556 |
557 | * Now, just run the macro, to get report `toPrint`:
558 |
559 | 
560 |
561 | * FreeCAD transformations have hidden base elements. Only the final transformed object is visible. However, it is not the issue, to have the `edge size` calculated as well just e.g. press the `spacebar key` while on the `Pad` to make it visible and run the macro again:
562 |
563 | 
564 |
565 | **Note:** Now You should see the `edge size` is calculated correctly.
566 |
567 | ___
568 | ## Draft :: Array Polar
569 | **Supported:** `Cube`, `Pad`.
570 | ___
571 |
572 | To start with `Draft :: Array Polar` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
573 |
574 | * Click the `Pad` furniture part and create `Draft :: Array Polar` as it is demonstrated below:
575 |
576 | 
577 |
578 | * Now, just run the macro, to get report `toPrint`:
579 |
580 | 
581 |
582 | ___
583 | ## Draft :: Clone
584 | **Supported:** `Cube`, `Pad`, `Body`.
585 | ___
586 |
587 | To start with `Draft :: Clone` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
588 |
589 | * Click the `Pad` furniture part and create `Draft :: Clone` with the cute Dolly sheep icon:
590 |
591 | 
592 |
593 | * You can also change the `Position` of the cloned `Pad`:
594 |
595 | 
596 |
597 | * Now, just run the macro, to get report `toPrint`:
598 |
599 | 
600 |
601 | ___
602 | ## PartDesign :: Hole
603 | **Supported:** `Cube`, `Pad`.
604 | ___
605 |
606 | To start with `PartDesign :: Hole` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
607 |
608 | * Create `Sketch` at the `Pad` furniture part as it is demonstrated below:
609 |
610 | 
611 |
612 | **Note:** To set correct dimensions from the edge You can change `Sketch` position values to move `XY` to correct place at the `Pad` object, see [c - report type](#c---report-type).
613 |
614 | * Click the `Sketch` object and create `PartDesign :: Hole` as it is demonstrated below:
615 |
616 | 
617 |
618 | * Click the `Reversed` option if You do not see the hole at the `Pad`:
619 |
620 | 
621 |
622 | * Now, just run the macro, to get report `toPrint`:
623 |
624 | 
625 |
626 | **Note:** The `PartDesign :: Hole` is supported only by the [c - report type](#c---report-type).
627 |
628 | ___
629 | ## PartDesign :: Pocket
630 | **Supported:** `Pad`.
631 | ___
632 |
633 | To start with `PartDesign :: Pocket` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
634 |
635 | * Create `Sketch` at the `Pad` furniture part as it is demonstrated below and click `Pocket` icon:
636 |
637 | 
638 |
639 | **Note:** You can describe constraints to get better [p - report type](#p---report-type) later. However, for [c - report type](#c---report-type) it is needed.
640 |
641 | * Now, just run the macro, to get report `toPrint`:
642 |
643 | 
644 |
645 | **Note:** The `PartDesign :: Pocket` is supported only by the [c - report type](#c---report-type) and [p - report type](#p---report-type).
646 |
647 | ___
648 | ## PartDesign :: LinearPattern
649 | **Supported:** `Cube`, `Pad`, `Hole`.
650 | ___
651 |
652 | To start with `PartDesign :: LinearPattern` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
653 |
654 | * Click the `Pad` furniture part and create `PartDesign :: LinearPattern` as it is demonstrated below:
655 |
656 | 
657 |
658 | * Now, just run the macro, to get report `toPrint`:
659 |
660 | 
661 |
662 | * To show the edge size correctly just make the base element `Pad` visible or turn off the [Visibility](#visibility) feature at [Default Settings](#default-settings) GUI:
663 |
664 | 
665 |
666 | ___
667 | ## PartDesign :: Mirrored
668 | **Supported:** `Pad`. Not supported by FreeCAD: `Cube`.
669 | ___
670 |
671 | To start with `PartDesign :: Mirrored` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
672 |
673 | * Click the `Pad` furniture part and create `PartDesign :: Mirrored` as it is demonstrated below:
674 |
675 | 
676 |
677 | * Now, just run the macro, to get report `toPrint`:
678 |
679 | 
680 |
681 | ___
682 | ## PartDesign :: MultiTransform
683 | * **Supported objects:** `Pad`, `Hole`. Not supported by FreeCAD: `Cube`, `Body`.
684 | * **Supported transformations:** `Mirror`, `LinearPattern`.
685 | ___
686 |
687 | The `PartDesign :: MultiTransform` allows for many transformations at the single step. To start with `PartDesign :: MultiTransform` transformation, You have to create the furniture part for transformation first. In this case this will be `Pad` furniture part. If You already have the `Pad` created, just follow steps:
688 |
689 | * Click the `Pad` furniture part and create `PartDesign :: MultiTransform` as it is demonstrated below:
690 |
691 | 
692 |
693 | * Now, just run the macro, to get report `toPrint`:
694 |
695 | 
696 |
697 | ___
698 | ## App :: LinkGroup and App :: Link
699 | * **Supported objects:** `Cube`, `Pad`.
700 | ___
701 |
702 | This feature has been designed for [fully parametric furniture examples](https://github.com/dprojects/Woodworking/tree/master/Examples), to make more copies of furniture.
703 |
704 | To make more copies You can use [Draft :: Clone](#draft--clone) on the whole `Body` but the problem with that is that [Draft :: Clone](#draft--clone) not keep face color settings. The new cloned furniture will be all blue color. So, You have to set each face color again manually.
705 |
706 | To use the `App :: LinkGroup` and `App :: Link` correctly You have to keep such rules:
707 | 1. Use `App :: LinkGroup` as folder for base elements only. Do not make more copies with it.
708 | 2. If You want more copies use `App :: Link` at `App :: LinkGroup` folder.
709 | 3. If You want to move whole new furniture copy, just change position of `App :: Link` or `App :: LinkGroup`.
710 | 4. If You want to change color of the furniture or add new element, change the base content, I mean `App :: LinkGroup` content and all linked copies will be updated.
711 |
712 | **Note:** The `App :: LinkGroup` is supported only if this is called from `App :: Link`. This is because if You select several `Cubes` and make `App :: LinkGroup` it looks like FreeCAD move them into `App :: LinkGroup` content but in fact, in XML file the unlinked elements still exists additionally. So, if the `App :: LinkGroup` would be calculated from main, all the elements would be calculated twice.
713 |
714 | * See the example drawers set how the `Tree` structure is organized. The first bottom element is `App :: LinkGroup` and next two above are just links made with `App :: Link`. If You resize or change the base `App :: LinkGroup` all others will be changed as well. Also the linked copies preserve the face colors:
715 |
716 | 
717 | 
718 |
719 | ___
720 | ## Advanced furniture example
721 |
722 | To use any mirror type of feature part with Your furniture project just follow the steps:
723 |
724 | * Create any furniture using Pads and Sketches. You can use [PartDesign :: Mirrored](#partdesign--mirrored) and [PartDesign :: MultiTransform](#partdesign--multitransform) at the same project. For example legs are four, so You can use [PartDesign :: MultiTransform](#partdesign--multitransform) from the single leg and [PartDesign :: Mirrored](#partdesign--mirrored) for each pair of supporters between them:
725 |
726 | 
727 |
728 | * You can also create global furniture dimensions in a separate spreadsheet that gives You the ability to change the global furniture size later:
729 |
730 | 
731 |
732 | * Now, just run the macro, to get report `toPrint`:
733 |
734 | 
735 |
736 | **Note:** If You want to calculate the `edge size` correctly, You have to use the visibility to show e.g. top and hide legs and other parts.
737 |
738 | ___
739 | # Woodworking - usage examples
740 |
741 | ___
742 | ## Constraints - totally custom report
743 |
744 | This macro expects from each furniture part to have three dimensions: `Width`,` Height` and `Length`. `Pad` furniture part has only` Length` dimension, this is the ` Length` of `Sketch > Pad` option. For this dimension macro can be sure. Other two dimensions are hidden at `Sketch` object. Unfortunately, if the `Sketch` has something different than rectangle or square, there is no way to determine which one `constraint` is the correct `Width` or ` Height` or maybe it is offset or something else.
745 |
746 | However, You can create pretty useful report with all important `constraints` and the macro will calculate the quantity for You automatically, because macro supports all the transformations for custom report of `constraints`, as well.
747 |
748 | * To create custom report of `constraints` You have to add `Name` for the `constraint` You want to have listed at report. This is how the macro know which one `constraint` is important for You. All other `constraints` with empty names will be skipped at report:
749 |
750 | 
751 |
752 | * For this type of report You can use any drawing at `Sketch`:
753 |
754 | 
755 |
756 | * To create `constraints` report just set `Report type` variable to `c` and run macro:
757 |
758 | 
759 |
760 | ___
761 | ## Wood Properties - grain, type, color, etc.
762 |
763 | FreeCAD not support description for objects. This is not possible to add any note or custom text to the object during furniture design process. You can use `constraints name` at `Sketch` but this is not supported for `Cube` furniture part. Best way to do it is to use currently supported group report (`Report type` variable set to `g`). You can just organize You tree structure and create any report You want.
764 |
765 | * For example for `grain direction`:
766 |
767 | 
768 |
769 | * For example for `type of wood`:
770 |
771 | 
772 |
773 | * For example for `wood color`:
774 |
775 | 
776 |
777 | ___
778 | ## Edgeband
779 |
780 | The edgeband is a very problematic matter. Mainly because the edge You want to cover is up to human's choice. The macro cannot guess the edge to cover. For example, You may want to cover the front part of the shelf, or the back part too, or all the edges. The same for the other furniture parts. To solve this problem, a person has to select and mark the edge (or rather the `face`) to be covered.
781 |
782 | From the other side, during the furniture production process, there are always some leftover veneers for edge banding. But it is always better to have more than less veneer. If You buy a veneer for the entire edge, You can be sure that this veneer is enough for edge banding.
783 |
784 | > [!IMPORTANT]
785 | > In FreeCAD 1.0 the color structure has been changed. Unfortunately, the color information of the entire object `.ViewObject.ShapeColor` is no longer available. So user have to select face and get the reference furniture color for comparision.
786 |
787 | ___
788 | ### Edgeband - quick way
789 |
790 | The quickest way to add edgeband is to use the `Visibility` and `g - report type` (`Report type` variable set to `g`) feature together. You can organize furniture parts in groups and hide the furniture parts without edgeband. All You have to do is to create groups and name them appropriately. This is very quick way and in some cases may be very precised.
791 |
792 | * See the screenshot example below:
793 |
794 | 
795 |
796 | **Note:** As You see the `Edge size` is `20.4 m` which is very close to the correct value `18.8 m`.
797 |
798 | ___
799 | ### Edgeband - described
800 |
801 | If You want more detailed report about the edgeband You should consider [Constraints - totally custom report](#constraints---totally-custom-report). This type of report not support the `Edge size` but it can be a good addition to any other type of report.
802 |
803 | * For example for this top of the table You may want to cover all edges except this one from the side of the wall:
804 |
805 | 
806 |
807 | * To do this, this must be `Pad` furniture part and You have to edit the `Sketch` to have constraints for each edge, to be able to describe each edgeband precisely:
808 |
809 | 
810 |
811 | * To avoid the error reported by FreeCAD, check the `Reference` option:
812 |
813 | 
814 |
815 | * To create `constraints` report just set `Report type` variable to `c` and run macro:
816 |
817 | 
818 |
819 | ___
820 | ### Edgeband - detailed by selection
821 |
822 | * This way use `e - report type`. For this type of report You need to have the veneer applied correctly for each `face` at 3D model that needs to be covered. To apply veneer for `face` use:
823 | * `Mouse Right Button` click for object.
824 | * Choose from submenu `Set colors...`.
825 | * Select all needed `faces` using pressed `CTRL` keyboard key with `Mouse Left Button` click.
826 |
827 | 
828 |
829 | * To create the extended edge report just set `Report type` variable to `e` and run the macro:
830 |
831 | 
832 |
833 | **Note:** This feature not working for multi-color furniture. To determine the edgeband color the macro compare the `face` color with `object color`. If You want to generate report for multi-color furniture just organize You furniture parts in folders and use `Visibility` to generate report for each color.
834 |
835 | > [!IMPORTANT]
836 | > You have to add face color for PartDesign::Pad not to the final object.
837 |
838 | ___
839 | ## Dowels, pilot holes, countersinks
840 |
841 | * To create dowel You have to create `Pad` so first start with `Sketch` at the furniture part:
842 |
843 | 
844 |
845 | **Note:** Make sure You added desired `constraints name`. Only constraints with no empty `constraints name`
846 | will be visible at the final report. Not add `constraints name` for those that should be hidden.
847 |
848 | * You can use `PartDesign :: MultiTransform` at this dowel using `DatumPlane` to make more copies:
849 |
850 | 
851 |
852 | * Also You can add new dowel and do the same:
853 |
854 | 
855 | 
856 |
857 | * To create pilot hole You have to create `Hole` transformation but first start with `Sketch` at the furniture part:
858 |
859 | 
860 |
861 | **Note:** Make sure You added desired `constraints name`. Only constraints with no empty `constraints name`
862 | will be visible at the final report. Not add `constraints name` for those that should be hidden.
863 |
864 | * The same for countersink:
865 |
866 | 
867 |
868 | * You can use `PartDesign :: MultiTransform` at the pilot hole and countersink using `DatumPlane` to make more copies:
869 |
870 | 
871 |
872 | * The final 3D model should look like this:
873 |
874 | 
875 |
876 | * To create `constraints` report just set `Report type` variable to `c` and run macro:
877 |
878 | 
879 |
880 | ___
881 | ## Custom furniture part
882 |
883 | You can use [Draft :: Clone](#draft--clone) and [Part :: Mirroring](#part--mirroring) features to create custom furniture part. To do this You can use the whole `Body` content as custom furniture part.
884 |
885 | * To make more copies of the `Body` object use the `Draft :: Clone`:
886 |
887 | 
888 |
889 | * To make mirror of all the elements use the `Part :: Mirroring` on all cloned `Body` objects:
890 |
891 | 
892 |
893 | * As You see the countersinks are at the correct side now:
894 |
895 | 
896 | 
897 |
898 | * To create `constraints` report just set `Report type` variable to `c` and run macro:
899 |
900 | 
901 |
902 | ___
903 | ## 32 mm cabinetmaking system
904 |
905 | To make very quickly many holes for shelf support You can use [PartDesign :: MultiTransform](#partdesign--multitransform) with [PartDesign :: Hole](#partdesign--hole).
906 |
907 | * First create `Sketch` for single hole at the `Pad`:
908 |
909 | 
910 |
911 | * Create single hole at the `Pad`:
912 |
913 | 
914 |
915 | * Create `DatumPlane` for `Mirrored`:
916 |
917 | 
918 |
919 | * Now You can use [PartDesign :: MultiTransform](#partdesign--multitransform). First create `Mirrored`:
920 |
921 | 
922 |
923 | * Next create `LinearPattern`:
924 |
925 | 
926 |
927 | * Now, You should have all the holes:
928 |
929 | 
930 |
931 | * To create `constraints` report just set `Report type` variable to `c` and run macro:
932 |
933 | 
934 |
935 | ___
936 | # Known issues
937 |
938 | * **Issue**: Special characters (e.g. Polish) for chipboards (objects names) are not supported.
939 | * **Workaround**: You can change the names later manually in the spreadsheet `toCut` and the TechDraw report named `toPrint` will be automatically updated with new names.
940 |
941 | * **Issue**: Units at TechDraw page `toPrint` disappear after open project again.
942 | * **Workaround**: FreeCAD has problem with units generally. The units are still available in the spreadsheet `toCut`. To bring them back to the TechDraw report named `toPrint` You have to run the macro again. To keep them forever just save the TechDraw report named `toPrint` to `pdf` file.
943 |
944 | * **Issue**: Long report not fits to the TechDraw page `toPrint`.
945 | * **Workaround**: FreeCAD not support multi-page `pdf` export. Long report can be generated especially for `Constraints` (`Report type` variable set to `c`) or for objects names listing (`Report type` variable set to `n`).
946 | 1. You can change the `Report type` variable to `q` to sum up all the same dimensions and get the shortest possible report.
947 | 2. You can use my project created for this purpose here: [sheet2export](https://github.com/dprojects/sheet2export).
948 | 3. Another way is to copy manually data from spreadsheet `toCut`. For example You can export spreadsheet `toCut` to `.csv` file and open `.csv` file under `LibreOffice Writer` and convert it to the table.
949 |
950 | * **Issue**: Special characters (comma and whitespace) for `constraints name` are not supported generally. At Ubuntu the validation not works so You can use `constraints name` as `description` (label from FreeCAD point of view) but if You use expressions the expressions will be removed after file reopen ([FreeCAD bug described here](https://forum.freecadweb.org/viewtopic.php?f=10&t=67042)).
951 | * **Workaround**: There is [workaround](https://github.com/dprojects/getDimensions/commit/6a50fef4a8bbb4729ad8960a79f21b91b5712990), that allow to encode and decode comma and whitespace. To encode `", "` (comma and whitespace) in `constraints name` use `00` (zero twice). To encode `" "` (single whitespace) in `constraints name` use `0` (zero once). So, the encoded `constraints name` e.g. `Bottom00Joint0Size01` will be decoded at report as `Bottom, Joint Size 1`. Underscores way of encoding may not be supported for Windows users at FreeCAD. If You want to use underscores way, You have to test it first on Your own.
952 |
953 |
954 | ___
955 | **Note:** For more details see the [Demo folder](https://github.com/dprojects/getDimensions/tree/master/Demo).
956 |
--------------------------------------------------------------------------------
/Docs/Screenshots/32System001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System006.png
--------------------------------------------------------------------------------
/Docs/Screenshots/32System007.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/32System007.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARDecoration001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARDecoration001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARDecoration002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARDecoration002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARGrain001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARGrain001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARGrain002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARGrain002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARMeasurements001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARMeasurements001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARMeasurements002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARMeasurements002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARMounting001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARMounting001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARMounting002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARMounting002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARMounting003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARMounting003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARProfiles001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARProfiles001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARProfiles002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARProfiles002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARProfiles003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARProfiles003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ARProfiles004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ARProfiles004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/CustomPart001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/CustomPart001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/CustomPart002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/CustomPart002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/CustomPart003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/CustomPart003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/CustomPart004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/CustomPart004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/CustomPart005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/CustomPart005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband006.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Edgeband007.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Edgeband007.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartCube001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartCube001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartCube002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartCube002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartPad001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartPad001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartPad002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartPad002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartPad003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartPad003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/FPartPad004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/FPartPad004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole006.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole007.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole007.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole008.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole008.png
--------------------------------------------------------------------------------
/Docs/Screenshots/PDHole009.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/PDHole009.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Precision001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Precision001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Precision002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Precision002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Precision003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Precision003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/Precision004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/Precision004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RConstraints001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RConstraints001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RConstraints002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RConstraints002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RConstraints003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RConstraints003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/REdge001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/REdge001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/REdge002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/REdge002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RPartCut001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RPartCut001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RPartCut002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RPartCut002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RPartCut003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RPartCut003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RPartCut004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RPartCut004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RPartCut005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RPartCut005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility006.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility006a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility006a.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility006b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility006b.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility006c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility006c.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility007.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility007.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility008.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility008.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility009.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility009.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility010.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility010.png
--------------------------------------------------------------------------------
/Docs/Screenshots/RVisibility011.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/RVisibility011.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA005.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeA006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeA006.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeC001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeC002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeC002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeD001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeD001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeE001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeE001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeG001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeG001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeN001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeN001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeP001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeP001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ReportTypeQ001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ReportTypeQ001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TALink001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TALink001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TALink002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TALink002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftArray001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftArray001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftArray002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftArray002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftArray003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftArray003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftArrayPolar001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftArrayPolar001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftArrayPolar002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftArrayPolar002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftClone001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftClone001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftClone002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftClone002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TDraftClone003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TDraftClone003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDHole001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDHole001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDHole002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDHole002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDHole003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDHole003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDHole004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDHole004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDLinearPattern001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDLinearPattern001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDLinearPattern002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDLinearPattern002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPDLinearPattern003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPDLinearPattern003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignChamfer001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignChamfer001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignChamfer002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignChamfer002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignFillet001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignFillet001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignFillet002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignFillet002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignMirrored001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignMirrored001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignMirrored002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignMirrored002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignMultiTransform001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignMultiTransform001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignMultiTransform002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignMultiTransform002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignPocket001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignPocket001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignPocket002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignPocket002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignThickness001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignThickness001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartDesignThickness002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartDesignThickness002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartMirroring001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartMirroring001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartMirroring002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartMirroring002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartMirroring003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartMirroring003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/TPartMirroring004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/TPartMirroring004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/WoodProperties001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/WoodProperties001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/WoodProperties002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/WoodProperties002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/WoodProperties003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/WoodProperties003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/ds001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/ds001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exA001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exA002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exA002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exA003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exA003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exB001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exB001.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exB002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exB002.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exB003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exB003.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exB004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exB004.png
--------------------------------------------------------------------------------
/Docs/Screenshots/exB005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Docs/Screenshots/exB005.png
--------------------------------------------------------------------------------
/Docs/makeTOC.py:
--------------------------------------------------------------------------------
1 | # tool to generate Table Of Contents for README.md file from content
2 | # supports 5 levels
3 | #
4 | # usage: python3 ./makeTOC.py README.md > ./toc.md
5 |
6 |
7 | import sys
8 |
9 | data = ""
10 | toc = []
11 |
12 | file = open(sys.argv[1], 'r')
13 | data = file.readlines()
14 |
15 | for line in data:
16 | if line.startswith("#") == True:
17 |
18 | if line.startswith("# ") == True:
19 |
20 | link = line.replace("\n","")
21 | link = link.lower()
22 | link = link.replace("# ","")
23 | link = link.replace(" ","-")
24 | link = link.replace(",","")
25 | link = link.replace(":","")
26 | link = link.replace(".","")
27 |
28 | head = line.replace("\n","")
29 | head = head.replace("# ","")
30 |
31 | entry = "* [" + head + "](#" + link + ")"
32 |
33 | toc.append(entry)
34 |
35 | if line.startswith("## ") == True:
36 |
37 | link = line.replace("\n","")
38 | link = link.lower()
39 | link = link.replace("## ","")
40 | link = link.replace(" ","-")
41 | link = link.replace(",","")
42 | link = link.replace(":","")
43 | link = link.replace(".","")
44 |
45 | head = line.replace("\n","")
46 | head = head.replace("## ","")
47 |
48 | entry = "\t" + "* [" + head + "](#" + link + ")"
49 |
50 | toc.append(entry)
51 |
52 | if line.startswith("### ") == True:
53 |
54 | link = line.replace("\n","")
55 | link = link.lower()
56 | link = link.replace("### ","")
57 | link = link.replace(" ","-")
58 | link = link.replace(",","")
59 | link = link.replace(":","")
60 | link = link.replace(".","")
61 |
62 | head = line.replace("\n","")
63 | head = head.replace("### ","")
64 |
65 | entry = "\t\t" + "* [" + head + "](#" + link + ")"
66 |
67 | toc.append(entry)
68 |
69 | if line.startswith("#### ") == True:
70 |
71 | link = line.replace("\n","")
72 | link = link.lower()
73 | link = link.replace("#### ","")
74 | link = link.replace(" ","-")
75 | link = link.replace(",","")
76 | link = link.replace(":","")
77 | link = link.replace(".","")
78 |
79 | head = line.replace("\n","")
80 | head = head.replace("#### ","")
81 |
82 | entry = "\t\t\t" + "* [" + head + "](#" + link + ")"
83 |
84 | toc.append(entry)
85 |
86 | if line.startswith("##### ") == True:
87 |
88 | link = line.replace("\n","")
89 | link = link.lower()
90 | link = link.replace("##### ","")
91 | link = link.replace(" ","-")
92 | link = link.replace(",","")
93 | link = link.replace(":","")
94 | link = link.replace(".","")
95 |
96 | head = line.replace("\n","")
97 | head = head.replace("##### ","")
98 |
99 | entry = "\t\t\t\t" + "* [" + head + "](#" + link + ")"
100 |
101 | toc.append(entry)
102 |
103 |
104 | for t in toc:
105 | print(t)
106 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Description
2 |
3 |
This FreeCAD macro gets dimensions of furniture parts. It has been designed for my private woodworking projects (hobby), especially for chipboards 18 mm of thickness (they are the most common in Poland). This macro creates a spreadsheet named `toCut` and also a TechDraw page `toPrint` with all needed furniture parts to cut for woodworking project.
4 |
5 | **Note:** This tool is also part of [Woodworking workbench](https://github.com/dprojects/Woodworking).
6 |
7 |
8 |
9 | 
10 |
11 | 
12 |
13 | 
14 |
15 | # Main features
16 |
17 | * **Languages:** Polish, English.
18 | * **Units:** millimeters, meters, inches.
19 | * **Report types:**
20 | * quick, quantity first (q - report type),
21 | * names, objects listing (n - report type),
22 | * group, grandparent or parent folder name first (g - report type),
23 | * edgeband, extended edge (e - report type),
24 | * detailed, edgeband, drill holes, countersinks (d - report type),
25 | * constraints names, totally custom report (c - report type),
26 | * pads, all constraints (p - report type),
27 | * approximation of needed material (a - report type).
28 | * **Additional reports:**
29 | * Custom measurements:
30 | * App :: MeasureDistance.
31 | * Dowels and Screws - dowels made from:
32 | * Part :: Cylinder.
33 | * Profiles - metal construction elements made from:
34 | * PartDesign :: Thickness,
35 | * Dodo workbench profiles.
36 | * Decoration - decoration elements e.g. drawer handle:
37 | * PartDesign :: Fillet,
38 | * PartDesign :: Chamfer,
39 | * Part :: Sphere,
40 | * Part :: Cone,
41 | * Part :: Torus.
42 | * **Woodworking usage:**
43 | * wood properties - grain direction, type of wood, color of wood,
44 | * edgeband (quick way, described, detailed by selection),
45 | * dowels, pilot holes, countersinks,
46 | * custom furniture part,
47 | * 32 mm cabinetmaking system.
48 | * **Calculations:** quantity, thickness, area, edge size, edgeband.
49 | * **Supported furniture parts:**
50 | * Part :: Cube,
51 | * PartDesign :: Pad,
52 | * Part :: Extrusion,
53 | * custom objects with Width, Height and Length attribute, for example [Stick Frame Workbench objects](https://gitlab.com/mathcodeprint/stickframe).
54 | * **Supported transformations:**
55 | * Part :: Mirroring,
56 | * Draft :: Array,
57 | * Draft :: Array Polar,
58 | * Draft :: Clone,
59 | * PartDesign :: Pocket,
60 | * PartDesign :: Hole,
61 | * PartDesign :: LinearPattern,
62 | * PartDesign :: Mirrored,
63 | * PartDesign :: MultiTransform,
64 | * App :: Link,
65 | * App :: LinkGroup,
66 | * Part :: Compound,
67 | * Part :: Cut.
68 | * **Support for Assembly workbench:**
69 | * Assembly :: AssemblyObject
70 | * Assembly :: AssemblyLink
71 | * tested with Assembly4 and FreeCAD 1.0
72 | * **Settings by:** Qt Graphical User Interface (GUI), code variables.
73 | * **Outputs:** Spreadsheet, TechDraw page, Spreadsheet multi-page export by [sheet2export](https://github.com/dprojects/sheet2export).
74 |
75 | # Documentation
76 |
77 | * **Documentation for getDimensions macro:** [getDimensions/Docs](https://github.com/dprojects/getDimensions/tree/master/Docs)
78 | * **Woodworking workbench documentation:** [Woodworking/Docs](https://github.com/dprojects/Woodworking/tree/master/Docs)
79 | * **YouTube playlist:** [Cut-list, BOM, dimensions](https://www.youtube.com/playlist?list=PLSKOS_LK45BCnwvCGt4klfF6uVAxfQQTy)
80 |
81 | # License
82 |
83 | [MIT](https://github.com/dprojects/Woodworking/blob/master/LICENSE) for all Woodworking workbench content, so it is more free than FreeCAD.
84 |
85 | # Contact
86 |
87 | For questions, feature requests, please open issue at: [github.com/dprojects/Woodworking/issues](https://github.com/dprojects/Woodworking/issues)
88 |
89 | | | |
90 | |---|---|
91 | | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c1r1.png) | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c2r1.png) |
92 | | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c1r2.png) | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c2r2.png) |
93 | | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c1r3.png) | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c2r3.png) |
94 | | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c1r4.png) | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c2r4.png) |
95 | | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c1r5.png) | [](https://raw.githubusercontent.com/dprojects/getDimensions/master/Screenshots/matrix/c2r5.png) |
96 |
97 |
--------------------------------------------------------------------------------
/Screenshots/edgeband_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/edgeband_issue.png
--------------------------------------------------------------------------------
/Screenshots/lang_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/lang_en.png
--------------------------------------------------------------------------------
/Screenshots/lang_en2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/lang_en2.png
--------------------------------------------------------------------------------
/Screenshots/lang_pl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/lang_pl.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c1r1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c1r1.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c1r2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c1r2.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c1r3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c1r3.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c1r4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c1r4.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c1r5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c1r5.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c2r1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c2r1.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c2r2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c2r2.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c2r3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c2r3.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c2r4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c2r4.png
--------------------------------------------------------------------------------
/Screenshots/matrix/c2r5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Screenshots/matrix/c2r5.png
--------------------------------------------------------------------------------
/Test/README.md:
--------------------------------------------------------------------------------
1 | # Test procedure
2 |
3 | 1. `cd ./getDimensions`
4 | 2. Create Markdown files for all needed test cases via [sheet2export](https://github.com/dprojects/sheet2export) in the main directory.
5 | 3. Run from terminal: `bash ./Test/bin/autotest.bash`
6 |
7 | # Test cases
8 |
9 | 1. **Test001_features:**
10 | * Test all the basic features supported by the macro.
11 | * **Settings:**
12 | * `Report type` to `n`.
13 | * `Visibility` to `inherit`
14 | 2. **Test002_edgeband:**
15 | * Test edgeband and extended edge report.
16 | * **Settings:**
17 | * `Report type` to `e`,
18 | * `Edgeband code` to `black`.
19 | 2. **Test003_holes:**
20 | * Test detailed report with edgeband, holes and countersinks and advanced features like Mirrored on Body, Clone, multi object MultiTransform.
21 | * **Settings:**
22 | * `Report type` to `d`,
23 | * `Edgeband code` to `bronze`.
24 |
--------------------------------------------------------------------------------
/Test/Test001_features.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Test/Test001_features.FCStd
--------------------------------------------------------------------------------
/Test/Test002_edgeband.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Test/Test002_edgeband.FCStd
--------------------------------------------------------------------------------
/Test/Test003_holes.FCStd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dprojects/getDimensions/e64cf405a0624767b02004984a7f38bf70b4bdc9/Test/Test003_holes.FCStd
--------------------------------------------------------------------------------
/Test/bin/autotest.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # 2022.01.23 Darek L
4 |
5 |
6 | ########################################################################################################
7 | # Settings
8 | ########################################################################################################
9 |
10 |
11 | RESULTS_DIR="./Test/results/"
12 |
13 | DOTS="................................................................"
14 | DOTS+="......................................................................"
15 |
16 | iNum=`ls -l *.md | wc -l`
17 | current=0
18 |
19 |
20 | ########################################################################################################
21 | # Main
22 | ########################################################################################################
23 |
24 |
25 | echo -e "\n"
26 |
27 | for i in *.md; do
28 | (( current++ ))
29 |
30 | FILE="${RESULTS_DIR}`basename "$i"`"
31 |
32 | MSG="${current} of ${iNum} | Processing: diff \"./${i}\" \"${FILE}\""
33 | echo -e "${MSG}" "${DOTS:${#MSG}}" "\c"
34 |
35 |
36 | diff "./$i" "${FILE}"
37 |
38 | if [[ $? -eq 0 ]]; then
39 | echo -e "passed."
40 | else
41 | echo -e "\n"
42 | fi
43 |
44 | done
45 |
46 |
47 | echo -e "\n"
48 |
--------------------------------------------------------------------------------
/Test/results/Test001_features - toCut.md:
--------------------------------------------------------------------------------
1 | | | | | | | | |
2 | |:--|--:|:-:|--:|--:|--:|--:|
3 | | Name | Dimensions | | | Thickness | Quantity | m2 |
4 | | Back HDF | 200 mm | x | 300 mm | 3 mm | 1 | 0.06 |
5 | | Black Front | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
6 | | Side 1 | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
7 | | Side 2 | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
8 | | Top 1 | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
9 | | Foot 1 | 80 mm | x | 700 mm | 80 mm | 1 | 0.056 |
10 | | Foot 2 | 80 mm | x | 700 mm | 80 mm | 1 | 0.056 |
11 | | NoParent 200 | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
12 | | NoGrand 100 | 100 mm | x | 300 mm | 18 mm | 1 | 0.03 |
13 | | Small Cube 2 | 100 mm | x | 100 mm | 18 mm | 1 | 0.01 |
14 | | Small Cube 1 | 100 mm | x | 100 mm | 18 mm | 1 | 0.01 |
15 | | Array Cube | 200 mm | x | 300 mm | 18 mm | 6 | 0.36 |
16 | | Hidden Cube | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
17 | | Sort Order | 50 mm | x | 120 mm | 18 mm | 1 | 0.006 |
18 | | PDMirror Pad | 200 mm | x | 300 mm | 18 mm | 2 | 0.12 |
19 | | Pad Single | 200 mm | x | 300 mm | 18 mm | 1 | 0.06 |
20 | | PDMulti 4 Pad | 200 mm | x | 300 mm | 18 mm | 4 | 0.24 |
21 | | PDMulti 8 Pad | 200 mm | x | 300 mm | 18 mm | 8 | 0.48 |
22 | | Array Pad | 80 mm | x | 700 mm | 80 mm | 4 | 0.224 |
23 | | Array Polar Pad | 80 mm | x | 700 mm | 80 mm | 4 | 0.224 |
24 | | Array Polar Cube | 80 mm | x | 700 mm | 80 mm | 4 | 0.224 |
25 | | PMirror 2 Cube | 200 mm | x | 300 mm | 18 mm | 2 | 0.12 |
26 | | LinkGroup, panelZX | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
27 | | LinkGroup, panelZX001 | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
28 | | PartCut, Base 1 | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
29 | | PartCut, Tool 1 | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
30 | | PartCut, Tool 2 | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
31 | | panel with screw links | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
32 | | panel with screw clones | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
33 | | panel with dowels | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
34 | | Profile Simple | 100 mm | x | 600 mm | 100 mm | 1 | 0.06 |
35 | | Profile Angle 1 | 100 mm | x | 600 mm | 100 mm | 1 | 0.06 |
36 | | Profile Angle 2 | 100 mm | x | 600 mm | 100 mm | 1 | 0.06 |
37 | | Profile Angle 45 Cut | 100 mm | x | 600 mm | 100 mm | 1 | 0.06 |
38 | | Frame | 40 mm | x | 600 mm | 20 mm | 1 | 0.024 |
39 | | Frame Table Foot | 100 mm | x | 600 mm | 100 mm | 1 | 0.06 |
40 | | panel with holes | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
41 | | panel, Dado, Mortise | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
42 | | Array on Array 4 | 50 mm | x | 100 mm | 18 mm | 4 | 0.02 |
43 | | panel, Dado, Tenon 2 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
44 | | panel, Dado, Tenon 1 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
45 | | panel Mortise and Tenon | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
46 | | Tenon | 14 mm | x | 30 mm | 9 mm | 1 | 0.00042 |
47 | | Tenon 001 | 14 mm | x | 30 mm | 9 mm | 1 | 0.00042 |
48 | | Tenon 002 | 14 mm | x | 30 mm | 9 mm | 1 | 0.00042 |
49 | | Tenon 003 | 14 mm | x | 30 mm | 9 mm | 1 | 0.00042 |
50 | | panel Compound 2 | 30 mm | x | 600 mm | 30 mm | 1 | 0.018 |
51 | | panel Compound 1 | 30 mm | x | 600 mm | 30 mm | 1 | 0.018 |
52 | | nested 1 link | 80 mm | x | 600 mm | 20 mm | 4 | 0.192 |
53 | | nested 2 link | 80 mm | x | 600 mm | 20 mm | 4 | 0.192 |
54 | | nested 1 clone | 80 mm | x | 600 mm | 20 mm | 4 | 0.192 |
55 | | panel2pad | 300 mm | x | 600 mm | 18 mm | 2 | 0.36 |
56 | | Extrude | 150 mm | x | 1000 mm | 100 mm | 1 | 0.15 |
57 | | Part Mirror on Extrude | 150 mm | x | 1000 mm | 100 mm | 2 | 0.3 |
58 | | Mirror LinkGroup on Extrude | 150 mm | x | 1000 mm | 100 mm | 2 | 0.3 |
59 | | Custom object | 89 mm | x | 2438 mm | 38 mm | 1 | 0.216774 |
60 | | Summary by thickness | | | | | | |
61 | | | | | | 3 mm | 1 | 0.06 |
62 | | | | | | 18 mm | 57 | 5.416 |
63 | | | | | | 80 mm | 14 | 0.784 |
64 | | | | | | 100 mm | 10 | 1.05 |
65 | | | | | | 20 mm | 13 | 0.6 |
66 | | | | | | 9 mm | 4 | 0.00168 |
67 | | | | | | 30 mm | 2 | 0.036 |
68 | | | | | | 38 mm | 1 | 0.216774 |
69 | | | | | | | | |
70 | | Edge size | | | | | | 135.007 m |
71 | | | | | | | | |
72 | | 4 x | Mounting points, Screw, bit PZ2, 4.0 x 40 | | | | | |
73 | | | Diameter | | | 4 mm | | |
74 | | | Length | | | 40 mm | | |
75 | | 4 x | Mounting points, Dowel, 8.0 x 35 | | | | | |
76 | | | Diameter | | | 8 mm | | |
77 | | | Length | | | 35 mm | | |
78 | | 4 x | Construction profile | | | | | |
79 | | | Thickness | | | 1 mm | | |
80 | | | Dimensions | | | 100 mm x 100 mm x 600 mm | | |
81 | | 6 x | Custom measurements, PocketHole003 | | | | | |
82 | | | Edge4 | | | 50 mm | | |
83 | | | Edge6 | | | 32 mm | | |
84 | | | Edge20 | | | 9 mm | | |
85 | | | Edge25 | | | 32 mm | | |
86 | | | Edge2 | | | 600 mm | | |
87 | | | Edge11 | | | 300 mm | | |
88 | | | | | | | | |
89 | | Generated by FreeCAD macro: github.com/dprojects/getDimensions | | | | | | |
90 |
--------------------------------------------------------------------------------
/Test/results/Test002_edgeband - toCut.md:
--------------------------------------------------------------------------------
1 | | | | | | | | |
2 | |:--|--:|--:|--:|--:|--:|--:|
3 | | Name | Dimensions | | | Thickness | Quantity | m2 |
4 | | Foot L | 100 mm | x | 600 mm | 18 mm | 1 | 0.06 |
5 | | 5 | 6 | | 1 | 2 | 3 | 4 |
6 | | edge | | | | | edge | edge |
7 | | 600 mm | | | | | 100 mm | 100 mm |
8 | | black | | | | | black | black |
9 | | | | | | | | |
10 | | Name | Dimensions | | | Thickness | Quantity | m2 |
11 | | Side L1 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
12 | | 5 | 6 | | 1 | 2 | 3 | 4 |
13 | | | | | | | edge | edge |
14 | | | | | | | 300 mm | 300 mm |
15 | | | | | | | black | black |
16 | | | | | | | | |
17 | | Name | Dimensions | | | Thickness | Quantity | m2 |
18 | | Side L2 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
19 | | 5 | 6 | | 1 | 2 | 3 | 4 |
20 | | | | | | | edge | edge |
21 | | | | | | | 300 mm | 300 mm |
22 | | | | | | | black | black |
23 | | | | | | | | |
24 | | Name | Dimensions | | | Thickness | Quantity | m2 |
25 | | Side L3 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
26 | | 5 | 6 | | 1 | 2 | 3 | 4 |
27 | | | | | | | edge | edge |
28 | | | | | | | 300 mm | 300 mm |
29 | | | | | | | black | black |
30 | | | | | | | | |
31 | | Name | Dimensions | | | Thickness | Quantity | m2 |
32 | | Foot R | 100 mm | x | 600 mm | 18 mm | 1 | 0.06 |
33 | | 5 | 6 | | 1 | 2 | 3 | 4 |
34 | | edge | | | | | edge | edge |
35 | | 600 mm | | | | | 100 mm | 100 mm |
36 | | black | | | | | black | black |
37 | | | | | | | | |
38 | | Name | Dimensions | | | Thickness | Quantity | m2 |
39 | | Side R1 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
40 | | 5 | 6 | | 1 | 2 | 3 | 4 |
41 | | | | | | | edge | edge |
42 | | | | | | | 300 mm | 300 mm |
43 | | | | | | | black | black |
44 | | | | | | | | |
45 | | Name | Dimensions | | | Thickness | Quantity | m2 |
46 | | Side R2 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
47 | | 5 | 6 | | 1 | 2 | 3 | 4 |
48 | | | | | | | edge | edge |
49 | | | | | | | 300 mm | 300 mm |
50 | | | | | | | black | black |
51 | | | | | | | | |
52 | | Name | Dimensions | | | Thickness | Quantity | m2 |
53 | | Side R3 | 300 mm | x | 600 mm | 18 mm | 1 | 0.18 |
54 | | 5 | 6 | | 1 | 2 | 3 | 4 |
55 | | | | | | | edge | edge |
56 | | | | | | | 300 mm | 300 mm |
57 | | | | | | | black | black |
58 | | | | | | | | |
59 | | Name | Dimensions | | | Thickness | Quantity | m2 |
60 | | Back 1 | 300 mm | x | 464 mm | 18 mm | 1 | 0.1392 |
61 | | | | | | | | |
62 | | Name | Dimensions | | | Thickness | Quantity | m2 |
63 | | Back 2 | 300 mm | x | 464 mm | 18 mm | 1 | 0.1392 |
64 | | | | | | | | |
65 | | Name | Dimensions | | | Thickness | Quantity | m2 |
66 | | Back 3 | 300 mm | x | 464 mm | 18 mm | 1 | 0.1392 |
67 | | | | | | | | |
68 | | Name | Dimensions | | | Thickness | Quantity | m2 |
69 | | Top 1 | 500 mm | x | 600 mm | 18 mm | 1 | 0.3 |
70 | | 5 | 6 | | 1 | 2 | 3 | 4 |
71 | | | | | edge | edge | edge | edge |
72 | | | | | 600 mm | 600 mm | 500 mm | 500 mm |
73 | | | | | black | black | black | black |
74 | | | | | | | | |
75 | | Name | Dimensions | | | Thickness | Quantity | m2 |
76 | | Top 2 | 500 mm | x | 600 mm | 18 mm | 1 | 0.3 |
77 | | 5 | 6 | | 1 | 2 | 3 | 4 |
78 | | | | | edge | edge | edge | edge |
79 | | | | | 600 mm | 600 mm | 500 mm | 500 mm |
80 | | | | | black | black | black | black |
81 | | | | | | | | |
82 | | Name | Dimensions | | | Thickness | Quantity | m2 |
83 | | Top 3 | 500 mm | x | 600 mm | 18 mm | 1 | 0.3 |
84 | | 5 | 6 | | 1 | 2 | 3 | 4 |
85 | | | | | edge | edge | edge | edge |
86 | | | | | 600 mm | 600 mm | 500 mm | 500 mm |
87 | | | | | black | black | black | black |
88 | | | | | | | | |
89 | | Name | Dimensions | | | Thickness | Quantity | m2 |
90 | | Top 4 | 500 mm | x | 600 mm | 18 mm | 1 | 0.3 |
91 | | 5 | 6 | | 1 | 2 | 3 | 4 |
92 | | | | | edge | edge | edge | edge |
93 | | | | | 600 mm | 600 mm | 500 mm | 500 mm |
94 | | | | | black | black | black | black |
95 | | | | | | | | |
96 | | Name | Dimensions | | | Thickness | Quantity | m2 |
97 | | Front 1 | 310 mm | x | 490 mm | 18 mm | 1 | 0.1519 |
98 | | 5 | 6 | | 1 | 2 | 3 | 4 |
99 | | edge | edge | | edge | edge | | |
100 | | 490 mm | 490 mm | | 310 mm | 310 mm | | |
101 | | black | black | | black | black | | |
102 | | | | | | | | |
103 | | Name | Dimensions | | | Thickness | Quantity | m2 |
104 | | Front 2 | 310 mm | x | 490 mm | 18 mm | 1 | 0.1519 |
105 | | 5 | 6 | | 1 | 2 | 3 | 4 |
106 | | edge | edge | | edge | edge | | |
107 | | 490 mm | 490 mm | | 310 mm | 310 mm | | |
108 | | black | black | | black | black | | |
109 | | | | | | | | |
110 | | Name | Dimensions | | | Thickness | Quantity | m2 |
111 | | Front 3 | 310 mm | x | 490 mm | 18 mm | 1 | 0.1519 |
112 | | 5 | 6 | | 1 | 2 | 3 | 4 |
113 | | edge | edge | | edge | edge | | |
114 | | 490 mm | 490 mm | | 310 mm | 310 mm | | |
115 | | black | black | | black | black | | |
116 | | | | | | | | |
117 | | Summary by thickness | | | | Thickness | Quantity | m2 |
118 | | | | | | 18 mm | 18 | 3.2733 |
119 | | | | | | | | |
120 | | Edge size | | | | | | 31.784 m |
121 | | Edge without veneer | | | | | | 12.984 m |
122 | | Needed veneer for edge | | | | | | 18.8 m |
123 | | | | | | | | |
124 | | Generated by FreeCAD macro: github.com/dprojects/getDimensions | | | | | | |
125 |
--------------------------------------------------------------------------------
/Test/results/Test003_holes - toCut.md:
--------------------------------------------------------------------------------
1 | | | | | | | | |
2 | |--:|:-:|---|---|--:|--:|--:|
3 | | Side, bronze, grain along the long edge, chipboard | | | | | | |
4 | | | Dimensions | | | Thickness | Quantity | m2 |
5 | | | 350 mm | x | 812 mm | 18 mm | 2 | 0.5684 |
6 | | | | | | | | |
7 | | 5 | 6 | | 1 | 2 | 3 | 4 |
8 | | | | | | | edge | edge |
9 | | | | | | | 350 mm | 812 mm |
10 | | | | | | | bronze | bronze |
11 | | | | | | | | |
12 | | 4 x | Side, Pilot hole 1 | | | | | |
13 | | | Side, pilot hole offset from the long edge | | | | | 50 mm |
14 | | | Side, pilot hole offset from the bottom edge | | | | | 185 mm |
15 | | | Side, pilot hole diameter | | | | | 3 mm |
16 | | | | | | | | |
17 | | 4 x | Side, Pilot hole 2 | | | | | |
18 | | | Side, pilot hole offset from the long edge | | | | | 50 mm |
19 | | | Side, pilot hole offset from the bottom edge | | | | | 503 mm |
20 | | | Side, pilot hole diameter | | | | | 3 mm |
21 | | | | | | | | |
22 | | 4 x | Side, Countersink 1 | | | | | |
23 | | | Depth | | | | | 10 mm |
24 | | | Side, contersink offset from the long edge | | | | | 50 mm |
25 | | | Side, countersink offset from the bottom edge | | | | | 185 mm |
26 | | | Side, countersink diameter | | | | | 10 mm |
27 | | | | | | | | |
28 | | 4 x | Side, Countersink 2 | | | | | |
29 | | | Depth | | | | | 10 mm |
30 | | | Side, countersink offset from the long edge | | | | | 50 mm |
31 | | | Side, countersink offset from the bottom edge | | | | | 503 mm |
32 | | | Side, countersink diameter | | | | | 10 mm |
33 | | | | | | | | |
34 | | Shelf, bronze, grain along the long edge, chipboard | | | | | | |
35 | | | Dimensions | | | Thickness | Quantity | m2 |
36 | | | 350 mm | x | 464 mm | 18 mm | 2 | 0.3248 |
37 | | | | | | | | |
38 | | 5 | 6 | | 1 | 2 | 3 | 4 |
39 | | | | | | | edge | |
40 | | | | | | | 464 mm | |
41 | | | | | | | bronze | |
42 | | | | | | | | |
43 | | 8 x | Shelf, Pilot hole | | | | | |
44 | | | Depth | | | | | 50 mm |
45 | | | Shelf, pilot hole from the long edge | | | | | 50 mm |
46 | | | Shelf, pilot hole diameter | | | | | 3 mm |
47 | | | | | | | | |
48 | | Top, bronze, grain along the long edge, chipboard | | | | | | |
49 | | | Dimensions | | | Thickness | Quantity | m2 |
50 | | | 350 mm | x | 500 mm | 18 mm | 1 | 0.175 |
51 | | | | | | | | |
52 | | 5 | 6 | | 1 | 2 | 3 | 4 |
53 | | | | | | edge | edge | edge |
54 | | | | | | 350 mm | 500 mm | 350 mm |
55 | | | | | | bronze | bronze | bronze |
56 | | | | | | | | |
57 | | 4 x | Top, Pilot hole | | | | | |
58 | | | Top, pilot hole offset from the front | | | | | 50 mm |
59 | | | Top, pilot hole diameter | | | | | 3 mm |
60 | | | | | | | | |
61 | | 4 x | Top, Countersink | | | | | |
62 | | | Depth | | | | | 10 mm |
63 | | | Top, countersink offset from the front | | | | | 50 mm |
64 | | | Top, countersink diameter | | | | | 10 mm |
65 | | | | | | | | |
66 | | Back, bronze, no grain, HDF | | | | | | |
67 | | | Dimensions | | | Thickness | Quantity | m2 |
68 | | | 200 mm | x | 500 mm | 3 mm | 1 | 0.1 |
69 | | | | | | | | |
70 | | Back, bronze, no grain, HDF | | | | | | |
71 | | | Dimensions | | | Thickness | Quantity | m2 |
72 | | | 200 mm | x | 500 mm | 3 mm | 1 | 0.1 |
73 | | | | | | | | |
74 | | Back, bronze, no grain, HDF | | | | | | |
75 | | | Dimensions | | | Thickness | Quantity | m2 |
76 | | | 100 mm | x | 500 mm | 3 mm | 1 | 0.05 |
77 | | | | | | | | |
78 | | Summary by thickness | | | | Thickness | Quantity | m2 |
79 | | | | | | 18 mm | 5 | 1.0682 |
80 | | | | | | 3 mm | 3 | 0.25 |
81 | | | | | | | | |
82 | | Edge size | | | | | | 13.604 m |
83 | | Edge without veneer | | | | | | 9.152 m |
84 | | Needed veneer for edge | | | | | | 4.452 m |
85 | | | | | | | | |
86 | | Generated by FreeCAD macro: github.com/dprojects/getDimensions | | | | | | |
87 |
--------------------------------------------------------------------------------