Merge branch 'master' into User/Document/Feature_level_units_selection_#7746

This commit is contained in:
AgCaliva
2023-09-18 14:01:25 -03:00
committed by GitHub
49 changed files with 2903 additions and 1496 deletions

View File

@@ -158,15 +158,9 @@ class _Fence(ArchComponent.Component):
# We want to center the posts on the path. So move them the half width in
transformationVector = FreeCAD.Vector(0, - postWidth / 2, 0)
placements = patharray.placements_on_path(rotation, pathwire,
obj.NumberOfSections + 1,
transformationVector, True)
# The placement of the last object is always the second entry in the list.
# So we move it to the end
placements.append(placements.pop(1))
return placements
return patharray.placements_on_path(rotation, pathwire,
obj.NumberOfSections + 1,
transformationVector, True)
def calculatePosts(self, obj, postPlacements):
posts = []

View File

@@ -2344,7 +2344,10 @@ def getRepresentation(
i = 0
rgbt = []
for sol in obj.Shape.Solids:
rgbt.append(diffusecolor[i])
if i < len(diffusecolor):
rgbt.append(diffusecolor[i])
else:
rgbt.append(diffusecolor[0])
i += len(sol.Faces)
for i,shape in enumerate(colorshapes):
if i < len(rgbt):

View File

@@ -7,7 +7,7 @@
id="svg2784"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Ball.svg"
sodipodi:docname="Assembly_CreateJointBall.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -110,9 +110,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.0727665"
inkscape:cx="46.788375"
inkscape:cy="12.620186"
inkscape:zoom="12.830829"
inkscape:cx="35.344558"
inkscape:cy="26.225896"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@@ -184,7 +184,7 @@
<g
id="g1"
inkscape:label="Part"
transform="matrix(0.83333332,0,0,0.83333332,5.3333339,5.3333339)">
transform="matrix(0.93353917,0,0,0.93353917,3.1649726,2.1267463)">
<circle
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3808);fill-opacity:1;fill-rule:evenodd;stroke:#0b1521;stroke-width:1.80564;marker:none;enable-background:accumulate"
id="path2826"
@@ -209,7 +209,7 @@
</g>
<g
id="g3894"
transform="matrix(0.59756098,0,0,0.59756098,6.2756094,12.367563)">
transform="matrix(0.6694159,0,0,0.6694159,4.2205539,10.00682)">
<path
id="path3034"
style="fill:#cc0000;stroke:#280000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -5,7 +5,7 @@
id="svg2821"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Clyndrical_Alt.svg"
sodipodi:docname="Assembly_CreateJointCylindrical.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -197,8 +197,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.0000004"
inkscape:cx="53.687497"
inkscape:cy="22.562499"
inkscape:cx="36.437498"
inkscape:cy="44.062498"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@@ -361,45 +361,45 @@
</g>
</g>
<g
id="g11"
id="g13"
inkscape:label="Arrows"
transform="rotate(-120,32.120361,31.864491)">
<path
style="fill:#cc0000;stroke:#280000;stroke-width:1.44624;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 20.034237,35.554615 0.06786,-5.078769 8.949114,8.324918 -9.169637,8.181082 0.06786,-5.07877 C 13.046383,41.667788 5.7140243,37.951748 5.7140244,34.806973 l 1e-7,-6.297666 c 0,0 2.6499197,7.030509 14.3202125,7.045308 z"
id="path1"
id="path6"
sodipodi:nodetypes="cccccccc" />
<path
style="display:inline;mix-blend-mode:normal;fill:none;stroke:#ef2929;stroke-width:1.44624;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.39105,43.663017 5.518848,-4.879253 -5.391624,-4.987514 -0.03817,3.041133 C 11.304161,37.057072 7.1410319,32.755043 7.1410319,32.755043 l 4.5e-6,2.0746 c 0,0 1.038585,5.595611 14.2881836,5.816818 z"
id="path2"
id="path7"
sodipodi:nodetypes="cccccccc" />
<g
id="g4"
id="g9"
transform="matrix(0.82357963,-0.00653796,-0.00848163,-0.63484615,25.744689,50.319336)">
<path
style="fill:#cc0000;stroke:#280000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 22,23 v 8 L 11,18 22,5 v 8 c 8.384675,0.284272 17.347043,6.045424 17.398052,10.998501 l 0.10215,9.918935 C 39.500202,33.917436 36.168943,22.877393 22,23 Z"
id="path3"
id="path8"
sodipodi:nodetypes="cccccccc" />
<path
style="display:inline;mix-blend-mode:normal;fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 20,10.5 13.6,18 20,25.5 V 21 c 12.350879,-0.473246 17.471895,5.944927 17.471895,5.944927 l 0.02131,-3.001231 c 0,0 -2.314076,-8.79997 -17.493209,-8.943696 z"
id="path4"
id="path9"
sodipodi:nodetypes="cccccccc"
sodipodi:insensitive="true" />
</g>
<g
id="g10"
transform="matrix(0,0.70000239,-0.70000239,0,54.300069,11.122614)"
id="g12"
transform="matrix(0,0.70000239,-0.70000239,0,54.300069,4.2920858)"
style="display:inline">
<path
id="path5"
id="path11"
d="M 15,27 V 19 L 0.87149136,31.999999 15,45 v -8 h 14.714369 c 0,2.2e-5 0,0 0,0 V 27 Z"
style="fill:#cc0000;stroke:#280000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
sodipodi:nodetypes="ccccccccc" />
<path
id="path10"
id="path12"
d="m 13.066964,29 0.02232,-5.529467 -9.1754064,8.529466 9.2200494,8.574111 V 35.089285 L 27.762035,35 v -6 0 z"
style="fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="ccccccccc" />

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -7,7 +7,7 @@
id="svg2821"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Fixed_Alt.svg"
sodipodi:docname="Assembly_CreateJointFixed.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -183,10 +183,10 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.2080075"
inkscape:cx="59.309039"
inkscape:cy="27.955021"
inkscape:current-layer="g3"
inkscape:zoom="10.193662"
inkscape:cx="30.950604"
inkscape:cy="29.184801"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
@@ -252,109 +252,114 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g1"
inkscape:label="Part"
transform="matrix(0.82084962,0,0,0.82084962,5.7328115,5.8425597)">
<path
style="fill:#fce94f;stroke:#302b00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 56.000001,52.8038 c 0,4.418278 -10.745166,8 -24,8 -13.254833,0 -23.9999985,-3.581722 -23.9999985,-8 l -2e-6,-18.217405 H 56 Z"
id="path2994-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:url(#linearGradient3807);fill-opacity:1;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,4.016616 -9.84973,7.272727 -22,7.272727 -12.150264,0 -21.999999,-3.256111 -21.999999,-7.272727 l -1.5e-6,-15.950307 H 54 Z"
id="path2994-3-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:none;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path2994-3-6-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#fce94f;stroke:#302b00;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="path2994"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
<g
id="g3"
inkscape:label="Part 2"
transform="matrix(0.82084962,0,0,0.82084962,5.7328115,-10.245869)">
<path
style="fill:#729fcf;stroke:#0b1521;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1;fill-opacity:1"
d="m 56.000001,52.8038 c 0,4.418278 -10.745166,8 -24,8 -13.254833,0 -23.9999985,-3.581722 -23.9999985,-8 l -2e-6,-18.217405 H 56 Z"
id="path1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:url(#linearGradient3);fill-opacity:1;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,4.016616 -9.84973,7.272727 -22,7.272727 -12.150264,0 -21.999999,-3.256111 -21.999999,-7.272727 l -1.5e-6,-15.950307 H 54 Z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#729fcf;stroke:#0b1521;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1;fill-opacity:1"
id="ellipse3"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
<g
transform="matrix(0.45933714,0,0,0.84171063,12.102558,12.102562)"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="text3796"
inkscape:label="Lock">
id="g2"
inkscape:label="Main"
transform="matrix(1.0416665,0,0,1.0416665,-1.3333273,-2.3320947)">
<g
transform="matrix(0.26232603,0,0,0.14315619,-698.74089,-70.421371)"
id="g2385"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3844);fill-opacity:1;fill-rule:nonzero;stroke:#042a2a;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate">
id="g1"
inkscape:label="Part"
transform="translate(3.6192085e-6,-0.89630564)">
<path
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3045);fill-opacity:1;fill-rule:evenodd;stroke:#280000;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 2751.3603,595.12568 v 0 0 l -2e-4,46.44262 h 30.9618 l -0.2475,-47.17448 h -0.05 c 0.2977,-25.0696 20.9388,-45.71077 46.7403,-45.71077 25.8014,0 46.4426,20.64117 46.4421,46.44263 v 0 46.44262 h 30.9618 v -46.44262 0 c 5e-4,-41.28234 -25.801,-77.40438 -77.4039,-77.40438 -51.6029,0 -77.4044,36.12204 -77.4044,77.40438 z"
id="path2387" />
<rect
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3880);fill-opacity:1;fill-rule:evenodd;stroke:#280000;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect2389"
width="196.09097"
height="154.80875"
x="2730.7192"
y="641.5683" />
<rect
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect2389-0"
width="175.44977"
height="134.16759"
x="2741.0398"
y="651.88885" />
style="fill:#fce94f;stroke:#302b00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 56.000001,52.8038 c 0,4.418278 -10.745166,8 -24,8 -13.254833,0 -23.9999985,-3.581722 -23.9999985,-8 l -2e-6,-18.217405 H 56 Z"
id="path2994-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:url(#linearGradient3807);fill-opacity:1;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,4.016616 -9.84973,7.272727 -22,7.272727 -12.150264,0 -21.999999,-3.256111 -21.999999,-7.272727 l -1.5e-6,-15.950307 H 54 Z"
id="path2994-3-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:none;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path2994-3-6-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#fce94f;stroke:#302b00;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="path2994"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
<g
id="g3"
inkscape:label="Part 2"
transform="translate(3.6192085e-6,-20.496033)">
<path
style="fill:#729fcf;fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 56.000001,52.8038 c 0,4.418278 -10.745166,8 -24,8 -13.254833,0 -23.9999985,-3.581722 -23.9999985,-8 l -2e-6,-18.217405 H 56 Z"
id="path1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:url(#linearGradient3);fill-opacity:1;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,4.016616 -9.84973,7.272727 -22,7.272727 -12.150264,0 -21.999999,-3.256111 -21.999999,-7.272727 l -1.5e-6,-15.950307 H 54 Z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#729fcf;fill-opacity:1;stroke:#0b1521;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="ellipse3"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
<g
transform="matrix(0.55958744,0,0,1.0254139,7.7599462,8.7187646)"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="text3796"
inkscape:label="Lock">
<g
transform="matrix(0.26232603,0,0,0.14315619,-698.74089,-70.421371)"
id="g2385"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3844);fill-opacity:1;fill-rule:nonzero;stroke:#042a2a;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate">
<path
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3045);fill-opacity:1;fill-rule:evenodd;stroke:#280000;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 2751.3603,595.12568 v 0 0 l -2e-4,46.44262 h 30.9618 l -0.2475,-47.17448 h -0.05 c 0.2977,-25.0696 20.9388,-45.71077 46.7403,-45.71077 25.8014,0 46.4426,20.64117 46.4421,46.44263 v 0 46.44262 h 30.9618 v -46.44262 0 c 5e-4,-41.28234 -25.801,-77.40438 -77.4039,-77.40438 -51.6029,0 -77.4044,36.12204 -77.4044,77.40438 z"
id="path2387" />
<rect
style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3880);fill-opacity:1;fill-rule:evenodd;stroke:#280000;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect2389"
width="196.09097"
height="154.80875"
x="2730.7192"
y="641.5683" />
<rect
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:10.3206;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect2389-0"
width="175.44977"
height="134.16759"
x="2741.0398"
y="651.88885" />
</g>
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719895,26.594196 H 60.915549"
id="path3777-7" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719921,32.504016 H 60.915574"
id="path3777-3-5" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719921,38.413838 H 60.915574"
id="path3777-6-3" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 25.719879,20.684376 v -6.648549 c 1.2e-5,-3.69364 5.414701,-8.8647326 17.597824,-8.8647334 12.183122,-7e-7 17.597835,5.1710934 17.597825,8.8647334 v 6.648549"
id="path3828" />
</g>
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719895,26.594196 H 60.915549"
id="path3777-7" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719921,32.504016 H 60.915574"
id="path3777-3-5" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a40000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 25.719921,38.413838 H 60.915574"
id="path3777-6-3" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.2152px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 25.719879,20.684376 v -6.648549 c 1.2e-5,-3.69364 5.414701,-8.8647326 17.597824,-8.8647334 12.183122,-7e-7 17.597835,5.1710934 17.597825,8.8647334 v 6.648549"
id="path3828" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -7,7 +7,7 @@
id="svg2821"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Parallel_Alt.svg"
sodipodi:docname="Assembly_CreateJointParallel.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xml:space="preserve"
@@ -172,10 +172,10 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="29.565902"
inkscape:cy="26.295533"
inkscape:current-layer="g7"
inkscape:zoom="7.9999996"
inkscape:cx="33.562501"
inkscape:cy="26.812501"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
@@ -206,7 +206,7 @@
inkscape:groupmode="layer"><g
id="g8"
inkscape:label="Main"
transform="translate(-0.08400268,-0.27617774)"><g
transform="matrix(1.0899303,0,0,1.0899303,-2.9693267,-3.1787843)"><g
id="g6"
inkscape:label="Plane"
transform="matrix(0.90708807,-0.79900391,0,1.0698986,-19.299267,34.058528)"><rect

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -7,7 +7,7 @@
id="svg2821"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Planar.svg"
sodipodi:docname="Assembly_CreateJointPlanar.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -158,9 +158,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="16"
inkscape:cx="37.09375"
inkscape:cy="32.09375"
inkscape:zoom="11.313708"
inkscape:cx="26.825864"
inkscape:cy="27.356194"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@@ -229,7 +229,7 @@
<g
id="g6"
inkscape:label="Plane"
transform="matrix(0.90708807,0,0,0.90708807,2.9731817,2.9731817)">
transform="matrix(1.0798517,0,0,1.0798517,-2.5552547,-2.5552547)">
<rect
style="fill:url(#linearGradient6);fill-opacity:1;stroke:#302b00;stroke-width:1.5;stroke-dasharray:none;stroke-opacity:1"
id="rect3"
@@ -247,7 +247,7 @@
</g>
<g
id="g1"
transform="translate(0.14066863,-5.5382098e-4)"
transform="matrix(1.1586625,0,0,1.1586625,-4.9142154,-5.0778445)"
inkscape:label="Arrows">
<g
id="g3894-3"

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -7,7 +7,7 @@
id="svg2784"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Joint_Tangent_Alt.svg"
sodipodi:docname="Assembly_CreateJointTangent.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -131,9 +131,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.0727662"
inkscape:cx="25.185263"
inkscape:cy="26.507902"
inkscape:zoom="12.830829"
inkscape:cx="33.006441"
inkscape:cy="32.071194"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
@@ -205,7 +205,7 @@
<g
id="g5"
inkscape:label="Main"
transform="matrix(1.1300601,0,0,1.1300601,-21.405472,8.2622063)"
transform="matrix(1.1443561,0,0,1.1443561,-21.742282,8.049438)"
style="stroke-width:0.944312">
<g
id="g1"
@@ -290,52 +290,52 @@
x="9.8358345"
y="9.8358364" />
</g>
</g>
<g
id="layer1-6"
transform="matrix(0.45227982,0,0,0.45227982,21.800894,9.3107694)">
<g
id="g3063"
transform="translate(1,-0.99999976)">
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025"
style="fill:none;stroke:#280000;stroke-width:12.16061331;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025-3"
style="fill:none;stroke:#ef2929;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025-3-6"
style="fill:none;stroke:#cc0000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g3071-2"
transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,139.73516,72.918789)">
<rect
transform="matrix(0.99999974,7.1938714e-4,-7.1838503e-4,0.99999974,0,0)"
ry="0"
rx="0"
y="33.032074"
x="78.283699"
height="9.8608322"
width="53.747211"
id="rect3770-9"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cc0000;fill-opacity:1;fill-rule:nonzero;stroke:#280000;stroke-width:3.31653091;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<rect
transform="matrix(0.99999989,4.636052e-4,-0.00111473,0.99999938,0,0)"
ry="0"
rx="0"
y="35.020126"
x="80.300385"
height="5.9074764"
width="49.745319"
id="rect3770-3-1"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
id="layer1-6"
transform="matrix(0.40022634,0,0,0.40022634,38.233689,0.9278826)">
<g
id="g3063"
transform="translate(1,-0.99999976)">
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025"
style="fill:none;stroke:#280000;stroke-width:12.1606;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025-3"
style="fill:none;stroke:#ef2929;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
<path
transform="translate(-4,6)"
d="M 11.000001,18 C 29.225397,18 44,32.774603 44,51"
id="path3025-3-6"
style="fill:none;stroke:#cc0000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g3071-2"
transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,139.73516,72.918789)">
<rect
transform="matrix(0.99999974,7.1938714e-4,-7.1838503e-4,0.99999974,0,0)"
ry="0"
rx="0"
y="33.032074"
x="78.283699"
height="9.8608322"
width="53.747211"
id="rect3770-9"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cc0000;fill-opacity:1;fill-rule:nonzero;stroke:#280000;stroke-width:3.31653;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<rect
transform="matrix(0.99999989,4.636052e-4,-0.00111473,0.99999938,0,0)"
ry="0"
rx="0"
y="35.020126"
x="80.300385"
height="5.9074764"
width="49.745319"
id="rect3770-3-1"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ef2929;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
</g>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,331 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64px"
height="64px"
id="svg2821"
sodipodi:version="0.32"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="Assembly_Joint.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs2823">
<linearGradient
inkscape:collect="always"
id="linearGradient4">
<stop
style="stop-color:#3465a4;stop-opacity:1;"
offset="0"
id="stop3" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="1"
id="stop4" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3801">
<stop
style="stop-color:#c4a000;stop-opacity:1"
offset="0"
id="stop3803" />
<stop
style="stop-color:#fce94f;stop-opacity:1"
offset="1"
id="stop3805" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3701"
gradientUnits="userSpaceOnUse"
cx="84.883324"
cy="77.042847"
fx="84.883324"
fy="77.042847"
r="19.467436"
gradientTransform="matrix(2.8492421,1.2585119,-0.4040415,0.9147407,-125.84131,-100.25805)" />
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#faff2b;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#ffaa00;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3699"
gradientUnits="userSpaceOnUse"
cx="76.383331"
cy="94.369568"
fx="76.383331"
fy="94.369568"
r="19.467436"
gradientTransform="matrix(0.9818943,0.1894295,-0.4109427,2.1300924,40.163453,-121.11559)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2829" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3801"
id="linearGradient3807"
x1="110"
y1="35"
x2="85"
y2="35"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
gradientTransform="translate(-61,-0.19620034)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3801-5"
id="linearGradient3807-7"
x1="110"
y1="35"
x2="85"
y2="35"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
gradientTransform="translate(-62,-16)" />
<linearGradient
inkscape:collect="always"
id="linearGradient3801-5">
<stop
style="stop-color:#c4a000;stop-opacity:1"
offset="0"
id="stop3803-3" />
<stop
style="stop-color:#fce94f;stop-opacity:1"
offset="1"
id="stop3805-5" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3838"
id="linearGradient3844"
x1="2802.9631"
y1="538.36249"
x2="2859.7263"
y2="786.05646"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3838">
<stop
style="stop-color:#34e0e2;stop-opacity:1"
offset="0"
id="stop3840" />
<stop
style="stop-color:#06989a;stop-opacity:1"
offset="1"
id="stop3842" />
</linearGradient>
<linearGradient
y2="786.05646"
x2="2859.7263"
y1="538.36249"
x1="2802.9631"
gradientUnits="userSpaceOnUse"
id="linearGradient3045"
xlink:href="#linearGradient3172" />
<linearGradient
id="linearGradient3172">
<stop
id="stop3174"
offset="0"
style="stop-color:#ef2929;stop-opacity:1" />
<stop
id="stop3176"
offset="1"
style="stop-color:#a40000;stop-opacity:1" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3172"
id="linearGradient3880"
gradientUnits="userSpaceOnUse"
x1="2802.9631"
y1="626.0874"
x2="2849.4058"
y2="822.17853" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-61,-0.19620034)"
x1="110"
y1="35"
x2="85"
y2="35"
spreadMethod="reflect" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.193662"
inkscape:cx="34.482211"
inkscape:cy="20.993437"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="2560"
inkscape:window-height="1356"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid2992"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<metadata
id="metadata2826">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:creator>
<cc:Agent>
<dc:title>[wmayer]</dc:title>
</cc:Agent>
</dc:creator>
<dc:title>Part_Cylinder</dc:title>
<dc:date>2011-10-10</dc:date>
<dc:relation>http://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Part/Gui/Resources/icons/Part_Cylinder.svg</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license>https://www.gnu.org/copyleft/lesser.html</cc:license>
<dc:contributor>
<cc:Agent>
<dc:title>[agryson] Alexander Gryson</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g2"
inkscape:label="Main"
transform="matrix(1.0416665,0,0,1.0416665,-1.3333273,-2.3320947)">
<g
id="g1"
inkscape:label="Part"
transform="translate(3.6192085e-6,-0.89630564)">
<path
style="fill:#fce94f;stroke:#302b00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 56.000001,52.8038 c 0,4.418278 -10.745166,8 -24,8 -13.254833,0 -23.9999985,-3.581722 -23.9999985,-8 l -2e-6,-18.217405 H 56 Z"
id="path2994-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:url(#linearGradient3807);fill-opacity:1;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,4.016616 -9.84973,7.272727 -22,7.272727 -12.150264,0 -21.999999,-3.256111 -21.999999,-7.272727 l -1.5e-6,-15.950307 H 54 Z"
id="path2994-3-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccs" />
<path
style="fill:none;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path2994-3-6-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#fce94f;stroke:#302b00;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="path2994"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
<path
d="m 44.724484,42.214865 0,8.096549 c 0,0 -1.084323,3.922162 -12.564831,3.922162 -11.480508,0 -11.750143,-3.922162 -11.750143,-3.922162 l 0,-7.8593"
style="fill:#729fcf;fill-opacity:1;stroke:#fce94f;stroke-width:2.08333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
id="path1-5"
transform="matrix(0.96000015,0,0,0.96000015,1.2799944,2.2388113)"
sodipodi:nodetypes="cczcc" />
<path
d="m 42.423915,37.93471 v 11.605108 c 0,0 0.105469,2.899307 -10.224895,2.899307 -10.330364,0 -9.561926,-2.899307 -9.561926,-2.899307 V 38.110087"
style="fill:#729fcf;fill-opacity:1;stroke:#302b00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
id="path1-6"
sodipodi:nodetypes="ccscc" />
<g
id="g3"
inkscape:label="Part 2"
transform="translate(3.6192085e-6,-20.496033)">
<path
style="fill:#729fcf;fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 56.000001,52.8038 c 0,3.292855 -5.968324,6.121052 -14.495801,7.348199 v 9.235537 c 0,0 0.0958,2.307316 -9.287334,2.307316 -9.383131,0 -8.685155,-2.307316 -8.685155,-2.307316 V 60.291568 C 14.4556,59.150481 8.0000025,56.228438 8.0000025,52.8038 l -2e-6,-18.217405 H 56 Z"
id="path1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scczcccccs" />
<path
style="fill:url(#linearGradient3);fill-opacity:1;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,51.531073 c 0,3.178678 -6.168743,5.881062 -14.764615,6.870253 v 10.060365 c 0,0 -3.395389,0.831669 -6.594726,0.824042 -3.199337,-0.0076 -6.53823,-0.824042 -6.53823,-0.824042 V 58.539526 C 16.816059,57.687388 10.000001,54.872367 10.000001,51.531073 l -1.5e-6,-15.950307 H 54 Z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scczcccccs" />
<path
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dashoffset:20.4;stroke-opacity:1"
d="m 54,38.835626 c -2,3.272727 -9.84973,5.272727 -22,5.272727 -12.150264,0 -19,-2 -21.999999,-5.272727"
id="path3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<ellipse
style="fill:#729fcf;fill-opacity:1;stroke:#0b1521;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="ellipse3"
cx="32"
cy="34.381172"
rx="24"
ry="7.9999995" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -498,7 +498,7 @@ class Edit(gui_base_original.Modifier):
orthoConstrain = True
snappedPos = Gui.Snapper.snap((pos[0],pos[1]),self.node[-1], constrain=orthoConstrain)
self.trackers[self.obj.Name][self.editing].set(snappedPos)
self.ui.displayPoint(snappedPos, self.node[-1])
self.ui.displayPoint(snappedPos, self.node[-1], mask=Gui.Snapper.affinity)
if self.ghost:
self.updateGhost(obj=self.obj, node_idx=self.editing, v=snappedPos)

View File

@@ -241,12 +241,12 @@ class Shape2DView(DraftObject):
else:
shtypes.setdefault(o.Material.Name
if (hasattr(o,"Material") and o.Material)
else "None",[]).append(o.Shape.copy())
else "None",[]).extend(o.Shape.SubShapes)
elif hasattr(o,'Shape'):
if onlysolids:
shapes.extend(o.Shape.Solids)
else:
shapes.append(o.Shape.copy())
shapes.extend(o.Shape.SubShapes)
for k, v in shtypes.items():
v1 = v.pop()
if v:
@@ -264,14 +264,14 @@ class Shape2DView(DraftObject):
shapes.extend(v1.Solids)
else:
print("Shape2DView: Fusing Arch objects produced non-solid results")
shapes.append(v1)
shapes.extend(v1.SubShapes)
else:
for o in objs:
if hasattr(o,'Shape'):
if onlysolids:
shapes.extend(o.Shape.Solids)
else:
shapes.append(o.Shape.copy())
shapes.extend(o.Shape.SubShapes)
clip = False
if hasattr(obj.Base,"Clip"):
clip = obj.Base.Clip
@@ -302,12 +302,12 @@ class Shape2DView(DraftObject):
if onlysolids:
cuts.extend(c.Solids)
else:
cuts.append(c)
cuts.extend(c.SubShapes)
else:
if onlysolids:
cuts.extend(sh.Solids)
else:
cuts.append(sh.copy())
cuts.extend(sh.SubShapes)
comp = Part.makeCompound(cuts)
obj.Shape = self.getProjected(obj,comp,proj)
elif obj.ProjectionMode in ["Cutlines", "Cutfaces"]:
@@ -339,9 +339,7 @@ class Shape2DView(DraftObject):
objs = self.excludeNames(obj,groups.get_group_contents(obj.Base))
for o in objs:
if hasattr(o,'Shape'):
if o.Shape:
if not o.Shape.isNull():
shapes.append(o.Shape)
shapes.extend(o.Shape.SubShapes)
if shapes:
import Part
comp = Part.makeCompound(shapes)

View File

@@ -502,6 +502,9 @@ class ViewProviderLinearDimension(ViewProviderDimensionBase):
rot1[2], rot1[3]))
self.transDimOvershoot2.rotation.setValue((rot1[0], rot1[1],
rot1[2], rot1[3]))
self.trot = rot1
else:
self.trot = (0, 0, 0, 1)
if hasattr(vobj, "FlipArrows") and vobj.FlipArrows:
u = u.negative()
@@ -535,7 +538,6 @@ class ViewProviderLinearDimension(ViewProviderDimensionBase):
else:
offset = DraftVecUtils.scaleTo(v1, 0.05)
self.trot = rot1
if hasattr(vobj, "FlipText") and vobj.FlipText:
_rott = App.Rotation(self.trot[0], self.trot[1], self.trot[2], self.trot[3])
self.trot = _rott.multiply(App.Rotation(App.Vector(0, 0, 1), 180)).Q

View File

@@ -103,6 +103,7 @@
# include <ctime>
#endif //_PreComp_
#include <Base/Console.h>
#include <Base/Exception.h>
#include <Base/Reader.h>
#include <Base/Writer.h>
@@ -232,16 +233,21 @@ void Geometry::Restore(Base::XMLReader &reader)
if(strcmp(reader.localName(),"GeoExtensions") == 0) { // new format
int count = reader.getAttributeAsInteger("count");
long count = reader.getAttributeAsInteger("count");
for (int i = 0; i < count; i++) {
for (long i = 0; i < count; i++) {
reader.readElement("GeoExtension");
const char* TypeName = reader.getAttribute("type");
Base::Type type = Base::Type::fromName(TypeName);
GeometryPersistenceExtension *newE = static_cast<GeometryPersistenceExtension *>(type.createInstance());
newE->Restore(reader);
if (newE) {
newE->Restore(reader);
extensions.push_back(std::shared_ptr<GeometryExtension>(newE));
extensions.push_back(std::shared_ptr<GeometryExtension>(newE));
}
else {
Base::Console().Warning("Cannot restore geometry extension of type: %s\n", TypeName);
}
}
reader.readEndElement("GeoExtensions");

View File

@@ -11,129 +11,354 @@
FatherNamespace="Part">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
<UserDocu>With this objects you can handle sketches</UserDocu>
<UserDocu>Represents a sketch object</UserDocu>
</Documentation>
<Methode Name="solve">
<Documentation>
<UserDocu>solve the actual set of geometry and constraints</UserDocu>
<UserDocu>
Solve the sketch and update the geometry.
solve()
Returns:
0 in case of success, otherwise the following codes in this order of
priority:
-4 if over-constrained,
-3 if conflicting constraints,
-5 if malformed constraints
-1 if solver error,
-2 if redundant constraints.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="addGeometry">
<Documentation>
<UserDocu>add a geometric object to the sketch</UserDocu>
<UserDocu>
Add geometric objects to the sketch.
addGeometry(geo:Geometry, isConstruction=False) -> int
Add a single geometric object to the sketch.
Args:
geo: The geometry to add. e.g. a Part.LineSegement
isConstruction: Whether the added geometry is a "construction geometry".
Defaults to `False`, i.e. by omitting, a regular geometry is added.
Returns:
The zero-based index of the newly added geometry.
addGeometry(geo:List(Geometry), isConstruction=False) -> Tuple(int)
Add many geometric objects to the sketch.
Args:
geo: The geometry to add.
isConstruction: see above.
Returns:
A tuple of zero-based indices of all newly added geometry.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="delGeometry">
<Documentation>
<UserDocu>delete a geometric object from the sketch</UserDocu>
<UserDocu>
Delete a geometric object from the sketch.
delGeometry(geoId:int)
Args:
geoId: The zero-based index of the geometry to delete.
Any internal alignment geometry thereof will be deleted, too.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="delGeometries">
<Documentation>
<UserDocu>delete a list of geometric objects from the sketch, including any internal alignment geometry thereof</UserDocu>
<UserDocu>
Delete a list of geometric objects from the sketch.
delGeometries(geoIds:List(int))
Args:
geoId: A list of zero-based indices of the geometry to delete.
Any internal alignment geometry thereof will be deleted, too.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="deleteAllGeometry">
<Documentation>
<UserDocu>delete all the geometry objects and constraints from the sketch except external geometry</UserDocu>
<UserDocu>
Delete all the geometry objects from the sketch, except external geometry.
deleteAllGeometry()
</UserDocu>
</Documentation>
</Methode>
<Methode Name="deleteAllConstraints">
<Documentation>
<UserDocu>delete all the constraints from the sketch</UserDocu>
<UserDocu>
Delete all the constraints from the sketch.
deleteAllConstraints()
</UserDocu>
</Documentation>
</Methode>
<Methode Name="toggleConstruction">
<Documentation>
<UserDocu>switch a geometry to a construction line</UserDocu>
<UserDocu>
Toggles a geometry between regular and construction.
toggleConstruction(geoId:int)
Args:
geoId: The zero-based index of the geometry to toggle.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setConstruction">
<Documentation>
<UserDocu>set construction mode of a geometry on or off</UserDocu>
<UserDocu>
Set construction mode of a geometry.
setConstruction(geoId:int, state:bool)
Args:
geoId: The zero-based index of the geometry to configure.
state: `True` configures the geometry to "construction geometry",
`False` configures it to regular geometry.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getConstruction">
<Documentation>
<UserDocu>returns the construction mode of a geometry</UserDocu>
<UserDocu>
Determine whether the given geometry is a "construction geometry".
getConstruction(geoId:int)
Args:
geoId: The zero-based index of the geometry to query.
Returns:
`True` if the geometry is "construction geometry" and
`False` if it s a regular geometry.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="addConstraint">
<Documentation>
<UserDocu>add a constraint to the sketch</UserDocu>
<UserDocu>
Add constraints to the sketch.
addConstraint(constraint:Constraint) -> int
Add a single constraint to the sketch and solves it.
Returns:
The zero-based index of the newly added constraint.
addConstraint(constraints:List(Constraint)) -> Tuple(int)
Add many constraints to the sketch without solving.
Returns:
A tuple of zero-based indices of all newly added constraints.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="delConstraint">
<Documentation>
<UserDocu>delete a constraint from the sketch</UserDocu>
<UserDocu>
Delete a constraint from the sketch.
delConstraint(constraintIndex:int)
Args:
constraintIndex: The zero-based index of the constraint to delete.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="renameConstraint">
<Documentation>
<UserDocu>Rename a constraint of the sketch</UserDocu>
<UserDocu>
Rename a constraint in the sketch.
renameConstraint(constraintIndex:int, name:str)
Args:
constraintIndex: The zero-based index of the constraint to rename.
name: The new name for the constraint.
An empty string makes the constraint "unnamed" again.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getIndexByName" Const="true">
<Documentation>
<UserDocu>
Get the index of the constraint by name.
If there is no such constraint an exception is raised.
Get the index of a constraint by name.
getIndexByName(name:str)
Args:
name: The name for the constraint to look up.
If there is no such constraint an exception is raised.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="carbonCopy">
<Documentation>
<UserDocu>copy another sketch's geometry and constraints</UserDocu>
<UserDocu>
Copy another sketch's geometry and constraints into this sketch.
carbonCopy(objName:str, asConstruction=True)
Args:
ObjName: The name of the sketch object to copy from.
asConstruction: Whether to copy the geometry as "construction geometry".
</UserDocu>
</Documentation>
</Methode>
<Methode Name="addExternal">
<Documentation>
<UserDocu>add a link to an external geometry to use it in a constraint</UserDocu>
<UserDocu>
Add a link to an external geometry.
addExternal(objName:str, subName:str)
Args:
objName: The name of the document object to reference.
subName: The name of the sub-element of the object's shape to link as
"external geometry".
</UserDocu>
</Documentation>
</Methode>
<Methode Name="delExternal">
<Documentation>
<UserDocu>delete a external geometry link from the sketch</UserDocu>
<UserDocu>
Delete an external geometry link from the sketch.
delExternal(extGeoId:int)
Args:
extGeoId: The zero-based index of the external geometry to remove.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="delConstraintOnPoint">
<Documentation>
<UserDocu>delete coincident constraints associated with a sketch point</UserDocu>
<UserDocu>
Delete coincident constraints associated with a sketch point.
delConstraintOnPoint(vertexId:int)
Args:
vertexId: A zero-based index of the shape's vertices.
delConstraintOnPoint(geoId:int, pointPos:int)
Args:
geoId: The zero-based index of the geometry that contains the point.
pointPos: Enum denoting which point on the geometry is meant:
1: the start of a line or bounded curve.
2: the end of a line or bounded curve.
3: the center of a circle or ellipse.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setDatum">
<Documentation>
<UserDocu>set the Datum of a Distance or Angle constraint</UserDocu>
<UserDocu>
Set the value of a datum constraint (e.g. Distance or Angle)
setDatum(constraint, value)
Args:
constraint (int or str): The index or name of the constraint to set.
value (float or Quantity): The value to set for the constraint. When
using floats, values for linear dimensions are interpreted as
millimeter, angular ones as radians.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getDatum" Const="true">
<Documentation>
<UserDocu>Get the value of a datum constraint</UserDocu>
<UserDocu>
Get the value of a datum constraint (e.g. Distance or Angle)
getDatum(constraint) -> Quantity
Args:
constraint (int or str): The index or name of the constraint to query.
Returns:
The value of the constraint.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setDriving">
<Documentation>
<UserDocu>set the Driving status of a datum constraint</UserDocu>
<UserDocu>
Set the Driving status of a datum constraint.
setDriving(constraintIndex:int, state:bool)
Args:
constraintIndex: The zero-based index of the constraint to configure.
state: `True` sets the constraint to driving,
`False` configures it as non-driving, i.e. reference.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setDatumsDriving">
<Documentation>
<UserDocu>set the Driving status of datum constraints</UserDocu>
<UserDocu>
Set the Driving status of all datum constraints.
setDatumsDriving(state:bool)
Args:
state: `True` set all datum constraints to driving,
`False` configures them as non-driving, i.e. reference.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="moveDatumsToEnd">
<Documentation>
<UserDocu>Moves all datum constraints to the end of the constraint list</UserDocu>
<UserDocu>
Moves all datum constraints to the end of the constraint list.
moveDatumsToEnd()
Warning: This method reorders the constraint indices. Previously hold
numeric references to constraints may reference different constraints
after this operation.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getDriving" Const="true">
<Documentation>
<UserDocu>Get the Driving status of a datum constraint</UserDocu>
<UserDocu>
Get the Driving status of a datum constraint.
getDriving(constraintIndex:int)
Args:
constraintIndex: The zero-based index of the constraint to query.
Returns:
`True` if the constraint is driving,
`False` if it is non-driving, i.e. reference.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="toggleDriving">
<Documentation>
<UserDocu>toggle the Driving status of a datum constraint</UserDocu>
<UserDocu>
Toggle the Driving status of a datum constraint.
toggleDriving(constraintIndex:int)
Args:
constraintIndex: The zero-based index of the constraint to toggle.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVirtualSpace">
@@ -153,17 +378,44 @@ If there is no such constraint an exception is raised.
</Methode>
<Methode Name="setActive">
<Documentation>
<UserDocu>sets the constraint on/off (enforced or not)</UserDocu>
<UserDocu>
Activates or deactivates a constraint (enforce it or not).
setActive(constraintIndex:int, state:bool)
Args:
constraintIndex: The zero-based index of the constraint to configure.
state: `True` sets the constraint to active i.e. enforced,
`False` configures it as inactive, i.e. not enforced.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getActive" Const="true">
<Documentation>
<UserDocu>Get the constraint status (enforced or not)</UserDocu>
<UserDocu>
Get whether a constraint is active, i.e. enforced, or not.
getActive(constraintIndex:int)
Args:
constraintIndex: The zero-based index of the constraint to query.
Returns:
`True` if the constraint is active, i.e. enforced,
`False` if it is inactive, i.e. not enforced.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="toggleActive">
<Documentation>
<UserDocu>toggle the active status of constraint (enforced or not)</UserDocu>
<UserDocu>
Toggle the constraint between active (enforced) and inactive.
toggleActive(constraintIndex:int)
Args:
constraintIndex: The zero-based index of the constraint to toggle.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="movePoint">

File diff suppressed because it is too large Load Diff

View File

@@ -638,9 +638,9 @@ class MatrixTestCase(unittest.TestCase):
self.mat.setCol(0, FreeCAD.Vector(1, 0, 0))
self.mat.setRow(0, FreeCAD.Vector(1, 0, 0))
def testTrace(self):
def testDiagonal(self):
self.mat.scale(2.0, 2.0, 2.0)
self.assertEqual(self.mat.trace(), FreeCAD.Vector(2.0, 2.0, 2.0))
self.assertEqual(self.mat.diagonal(), FreeCAD.Vector(2.0, 2.0, 2.0))
def testNumberProtocol(self):
with self.assertRaises(NotImplementedError):