Release of 2016-12-31 :
Addition: into "Point 3/3" TAB : Random Point(s): into "Wire 1/3" TAB : Make Wire: Suppression of "Wire 2/3 and 3/3" TABs and replacement by "Curves And Surfaces" TAB : Addition: into "Curves And Surfaces " TAB : Launch Curves and Surfaces Menu: Click to launch a new tool for Curves and Surface
This commit is contained in:
parent
414bd24e9c
commit
0951c594f6
Binary file not shown.
Binary file not shown.
446
WorkFeature/Icons/WF_makePolygon.svg
Normal file
446
WorkFeature/Icons/WF_makePolygon.svg
Normal file
|
@ -0,0 +1,446 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2918"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="WF_makePolygon.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2920">
|
||||
<linearGradient
|
||||
id="linearGradient3144">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient3183"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<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="perspective2926" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-6"
|
||||
id="radialGradient4272"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-3"
|
||||
id="linearGradient4145-1"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-3">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-9" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-2" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-3-5"
|
||||
id="linearGradient4145-1-8"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-3-5">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-9-3" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-2-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4558-0"
|
||||
xlink:href="#linearGradient3144-6-2"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-2">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4558-7"
|
||||
xlink:href="#linearGradient3144-6-9"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-9">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-7" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-9"
|
||||
id="radialGradient3191"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-9">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-7" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-2" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-9"
|
||||
id="radialGradient4852"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-9-3"
|
||||
id="radialGradient4852-4"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-9-3">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-7-5" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-2-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4889"
|
||||
xlink:href="#linearGradient3144-9-3"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-9-4"
|
||||
id="radialGradient4852-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-9-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-7-7" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-2-9" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4929"
|
||||
xlink:href="#linearGradient3144-9-4"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient4852-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="15.078125"
|
||||
inkscape:cx="31.933679"
|
||||
inkscape:cy="23.941969"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1161"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2923">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<ellipse
|
||||
ry="6.2593665"
|
||||
rx="5.8838305"
|
||||
cy="45.098446"
|
||||
cx="12.998963"
|
||||
id="path3968"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<ellipse
|
||||
ry="6.2593665"
|
||||
rx="5.8838305"
|
||||
cy="60.551296"
|
||||
cx="41.915024"
|
||||
id="path3968-4"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<ellipse
|
||||
ry="6.2593665"
|
||||
rx="5.8838305"
|
||||
cy="16.978237"
|
||||
cx="29.910881"
|
||||
id="path3968-4-0"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<ellipse
|
||||
ry="6.2593665"
|
||||
rx="5.8838305"
|
||||
cy="23.941969"
|
||||
cx="58.097412"
|
||||
id="path3968-4-0-7"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;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:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:0.84700072;marker:none;enable-background:accumulate"
|
||||
d="M 57.905786,19.105436 29.578034,12.560311 9.4255882,45.49815 37.837962,63.67851 40.480295,57.198698 17.086112,41.9762 31.690938,17.646862 57.053414,23.748653 Z"
|
||||
id="path4425-9-8"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<g
|
||||
id="g3177"
|
||||
transform="matrix(-0.1459885,0.00366916,-0.00366916,-0.1459885,83.957793,125.97476)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<path
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:#0079ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.84700072;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 58.555579,11.316021 22.307841,5.7938518 4.8450848,37.848895 40.042117,59.66807 41.293589,54.194078 11.233991,36.399782 24.986028,10.157803 57.773488,15.36902 Z"
|
||||
id="path4425-9"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<g
|
||||
id="g3177-3"
|
||||
transform="matrix(-0.1459885,0.00366916,-0.00366916,-0.1459885,160.08538,105.57482)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<g
|
||||
id="g3185"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,40.882773,131.25331)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141">
|
||||
<circle
|
||||
id="path3187"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
cx="197.14285"
|
||||
cy="655.2193"
|
||||
r="48.57143" />
|
||||
<ellipse
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
id="path3189"
|
||||
style="fill:url(#radialGradient4852);fill-opacity:1;stroke:none"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
rx="34.345188"
|
||||
ry="23.991123" />
|
||||
</g>
|
||||
<g
|
||||
id="g3185-6"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,91.042198,108.25459)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141">
|
||||
<circle
|
||||
id="path3187-2"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
cx="197.14285"
|
||||
cy="655.2193"
|
||||
r="48.57143" />
|
||||
<ellipse
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
id="path3189-5"
|
||||
style="fill:url(#radialGradient4889);fill-opacity:1;stroke:none"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
rx="34.345188"
|
||||
ry="23.991123" />
|
||||
</g>
|
||||
<g
|
||||
id="g3185-66"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,73.763959,150.60875)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141">
|
||||
<circle
|
||||
id="path3187-5"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
cx="197.14285"
|
||||
cy="655.2193"
|
||||
r="48.57143" />
|
||||
<ellipse
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
id="path3189-0"
|
||||
style="fill:url(#radialGradient4929);fill-opacity:1;stroke:none"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
rx="34.345188"
|
||||
ry="23.991123" />
|
||||
</g>
|
||||
<g
|
||||
id="g3185-7"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,55.133656,102.30859)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141">
|
||||
<circle
|
||||
r="48.57143"
|
||||
cy="655.2193"
|
||||
cx="197.14285"
|
||||
id="path3187-0"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<ellipse
|
||||
ry="23.991123"
|
||||
rx="34.345188"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
id="path3189-1"
|
||||
style="fill:url(#radialGradient4852-6);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 17 KiB |
1247
WorkFeature/Icons/WF_pointsRandom.svg
Normal file
1247
WorkFeature/Icons/WF_pointsRandom.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 39 KiB |
9
WorkFeature/ParCurve/Ressources/2DPoints.txt
Normal file
9
WorkFeature/ParCurve/Ressources/2DPoints.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
# ASCII : 2D points
|
||||
+1.05 -1.50 0.000
|
||||
+0.55 +3.14 0.000
|
||||
+1.05 +2.60 0.000
|
||||
+2.70 +5.08 0.000
|
||||
+4.00 +4.50 0.000
|
||||
+5.00 +10.00 0.000
|
||||
+10.60 +5.00 0.000
|
||||
+19.90 +14.00 0.000
|
25
WorkFeature/ParCurve/Ressources/Parametric2D.dat
Normal file
25
WorkFeature/ParCurve/Ressources/Parametric2D.dat
Normal file
|
@ -0,0 +1,25 @@
|
|||
Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep
|
||||
['Circle', '10 # Radius', 'a', 'a*cos(t)', 'a*sin(t)', '0', '2*pi', '0.01', '0']
|
||||
['Ellipse', '10 # X Radius 1', '20 # Y Radius 2', 'a*cos(t)', 'b*sin(t)', '0', '2*pi', '0.01', '0']
|
||||
['Parabola', '10 # Parabola parameter >0', 'a', 't', 'sqrt(2*a*t)', '0.01', '10', '0.01', '0']
|
||||
['Hyperbola', '10 # Radius', 'a', 'a*1/cos(t)', 'b*tan(t)', '-pi+0.1', 'pi-0.1', '0.01', '0']
|
||||
['Double egg', '10 # Radius', '0', 'a*cos(t)*cos(t)', 't', '-pi', 'pi', '0.01', '1']
|
||||
['Catenary or funicular', '10', '0', 'a*log((1+sin(t))/(cos(t)))', 'a/cos(t)', '-pi/2 + 0.01', 'pi/2 - 0.01', '0.01', '0']
|
||||
['Sinusoid', '5 ', '1', 't', 'a*sin(t/b)', '0', '10', '0.01', '0']
|
||||
['Dipole part1', '5 ', '1', '-pow(a*a*cos(t),0.5)', 't', '-pi/2', 'pi/2', '0.01', '1']
|
||||
['Dipole part2', '5 ', '1', 'pow(a*a*cos(t),0.5)', 't', '-pi/2', 'pi/2', '0.01', '1']
|
||||
['Tear drop', '10', '2', 'a*cos(t)', 'a*sin(t)*pow(sin(t/2),b)', '0', '2*pi', '0.01', '0']
|
||||
['Kulp quartic', '10', '2*a', 'a*tan(t)', 'b*cos(t)', '-pi', 'pi', '0.01', '0']
|
||||
['Lemniscate of Bernoulli', '10', '1+pow(cos(t),2)', 'a*sin(t)/b', 'a*sin(t)*cos(t)/b', '-pi', 'pi', '0.01', '0']
|
||||
["Pascal's snail", '10', '2', 'a*(1+b*cos(t))', 't', '0', '2*pi', '0.01', '1']
|
||||
['Archimedian spiral', '2.5 # Radius', 'a', 'a*t', 't', '0', '5*2*pi # 5 circles', '0.01', '1']
|
||||
['Simple folium', '10 # Radius', '0', 'a*(cos(t)**3)', 't', '0', 'pi', '0.01', '1']
|
||||
['Regular bifolium', '2.5 # Radius', 'a', '4*a*sin(t)*(cos(t)**2)', 't', '0', 'pi', '0.01', '1']
|
||||
['Equilateral trefoil', '10 ', 'a', 'a*cos(3*t)', 't', '0', 'pi', '0.01', '1']
|
||||
['Circle with Teeth', '37 # Number of Teeth', '(a+cos(a*t)*2)*1 # 1 is diameter', 'b*cos(t)', 'b*sin(t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Spiral', '0.5 ', '-0.75', 'a*t', 'b*t', '0', '10*2*pi', '0.01', '1']
|
||||
['transcendental butterfly curve ', '4', '24', 'exp(sin(t))-2*cos(a*t)+pow(sin((2*t-pi)/b),5)', 't', '-8*pi', '8*pi', '0.01', '1']
|
||||
['Witch of Agnesi', '100 # Radius', 'a', 'a*tan(t)', 'b*cos(t)*cos(t)', '-pi/2.5+0.01', 'pi/2.5-0.01', '0.01', '0']
|
||||
['Kappa', '10 # Radius', 'a', 'a*tan(t)', 't', '0', '2*pi', '0.01', '1']
|
||||
['Trefle de Habenicht', '3', 'a', '1+cos(a*t)+(sin(a*t)*sin(a*t))', 't', '0', '2*pi', '0.01', '1']
|
||||
['Hypotrochoid', '4.5', 'a/1.5', 'a*((a/b -1)*cos(t) + (1/(a/b -1))*cos((a/b -1)*t))', 'a*((a/b -1)*sin(t) - (1/(a/b -1))*sin((a/b -1)*t))', '0', '4*pi', '0.1', '0']
|
28
WorkFeature/ParCurve/Ressources/Parametric3D.dat
Normal file
28
WorkFeature/ParCurve/Ressources/Parametric3D.dat
Normal file
|
@ -0,0 +1,28 @@
|
|||
Name, a (t), b (a,t),c (a,b,t), X (a,b,c,t), Y (a,b,c,t), Z (a,b,c,t), tmin, tmax, tstep, Cartesian
|
||||
['Cylindrical helix', '10 # Radius', '10*0.05 #Vert. step', '1 # +-1 direction of rotation ', 'a*cos(t)', 'c*a*sin(t)', 'b*t', '0.0', '5*2*pi #5 circles', '0.01', '0']
|
||||
['Conical helix', '25', '20', 'sin(a)*cos(b)/sin(b)', 'a*exp(c*t)*cos(t)', 'a*exp(c*t)*sin(t)', '-1*exp(c*t)*cos(a)/sin(a)', '0.0', '10*2*pi', '0.01', '0']
|
||||
['Skew circle helix', '10', '0', '0', '-a*cos(t)*( 1-(pow(cos(t),2)/3) )', '-a*sin(t) *( 1+(sin(2*t)/3) ) ', 'a*(t/2 +(pow(sin(t),2))/4)', '0.01', '10*pi', '0.01', '0']
|
||||
['Helix on Circle', '30', '10', '0.05', '(a+b*cos(t))*cos(c*t)', '(a+b*cos(t))*sin(c*t)', 'b*sin(t)', '0.0', '24*2*pi', '0.1', '0']
|
||||
['Circle with Teeth', '37', '1', '(a+cos(a*t)*2)*b', 'c*cos(t)', 'c*sin(t)', '0', '0.0', '2*pi', '0.01', '0']
|
||||
['Seam of a tennis ball', '5', '5', '2*(sqrt(a*b))', 'a*(cos(t))+b*(cos(3*t))', 'a*(sin(t))-b*(sin(3*t))', 'c*(sin(2*t))', '0.0', '2*pi', '0.05*pi', '0']
|
||||
['Archytas curve part1', '10', '0', '0', 'a*(cos(t)*cos(t))', 'a*(cos(t)*sin(t))', 'a*(sqrt((1-cos(t))*cos(t)))', '-1*pi/2', '+1*pi/2', '0.005*pi', '0']
|
||||
['Archytas curve part2', '10', '0', '0', 'a*(cos(t)*cos(t))', 'a*(cos(t)*sin(t))', '-a*(sqrt((1-cos(t))*cos(t)))', '-1*pi/2', '+1*pi/2', '0.005*pi', '0']
|
||||
['Tangentoidal crown', '37', '1', '1 ', 'a*cos(t)', 'a*sin(t)', 'b*tan(c*t/2)', '0.0', '2*pi', '0.01', '0']
|
||||
['Clelia', '10', '0', '20', 'a*cos(c*t)*cos(t)', 'a*cos(c*t)*sin(t)', 'a*sin(c*t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Cylindric sine wave', '25', '10', '5 #c>0', 'a*cos(t)', 'a*sin(t)', 'b*cos(c*t)', '0.0', '10*pi', '0.01', '0']
|
||||
['Egg with Teeth', '1', '1', '(a+cos(a*t)*2)*b', 'c*cos(t)*c', 'c*sin(t)', '0', '0.0', '2*pi', '0.01', '0']
|
||||
['Flower', '6.2', '3.1*t', '2', 'a*sin(t)-c*sin(b)', 'a*cos(t)-c*cos(b)', '0', '0.0', '10*2*pi', '0.1', '0']
|
||||
['Bicylindrical', '5 # Radius of Cyl 1', '5 # Radius of Cyl 2', '0 # Axis distance', 'a*cos(t)', 'sqrt(b*b-pow(2*c+a*sin(t),2))', 'c+a*sin(t)', '0', '2*pi', '0.01', '0']
|
||||
['Bicylindrical eight curved', '5 # Radius of Cyl 1', '10 # Radius of Cyl 2', '2.5 # Axis distance', 'a*cos(t)', '-sqrt(b*b-pow(2*c+a*sin(t),2))', 'c+a*sin(t)', '-pi', 'pi', '0.01', '0']
|
||||
['Bicylindrical C small', '5 # Radius of Cyl 1', '5 # Radius of Cyl 2', '1.5 # Axis distance', 'a*cos(t)', '-sqrt(abs(b*b-pow(2*c+a*sin(t),2)))', 'c+a*sin(t)', '-pi', 'pi', '0.01', '0']
|
||||
['Horopter', '20 # Radius', '10', 'tan(t/2)', '(2*a)/(1+c*c)', 'b*c', 'c*(2*a)/(1+c*c)', '-pi+0.01', 'pi-0.01', '0.01', '0']
|
||||
['3D Lissajous', '10 ', '10', '0', 'a*cos(3*t)', 'a*sin(2*t)', 'b*sin(7*t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Trefoil knot', '10', '0', '1 #-1 senestre', 'a*(cos(t)+2*cos(2*t))', 'a*(sin(t)-2*sin(2*t))', 'a*2*c*sin(3*t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Nfoil knot', '10', '10 #number of foils', '1 #-1 senestre', 'a*(cos(t)+2*cos((b-1)*t))', 'a*(sin(t)-2*sin((b-1)*t))', 'a*2*c*sin(b*t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Hypotrochoid-3', '4.5', 'a/1.5', '1', 'a*((a/b -1)*cos(t) + (c/(a/b -1))*cos((a/b -1)*t))', 'a*((a/b -1)*sin(t) - (c/(a/b -1))*sin((a/b -1)*t))', '0.5*t', '0.0', '10*4*pi', '0.1', '0']
|
||||
['Cylindrical billiard knot 01', '10', '32', '0', 'cos(a*t)', 'sin(a*t)', 'sin(b*t)', '0.0', 'pi', '0.001', '0']
|
||||
['Cylindrical billiard knot 02', '10', '32', '0', 'cos(a*t)', 'sin(a*t)', 'asin(sin(b*t))', '0.0', 'pi', '0.001', '0']
|
||||
['Reciprocal spiral', '10', '32', '2 + asin(sin(b*t))', 'cos(a*t)/c', 'sin(a*t)/c', '1', '0.0', 'pi', '0.001', '0']
|
||||
['3 Borromean rings', '10', '5', '0', 'a*cos(t) + a/2 ## a/2, -a/2,0', 'a*sin(t) + (a*sqrt(3)/2) ##(a*sqrt(3)/2), (a*sqrt(3)/2), (a*sqrt(3)) ', 'b*cos(3*t)', '0.0', '2*pi', '0.1', '0']
|
||||
['Trefoil knot O1', '2', '1', '1 #-1 for senester', 'cos(t) + 2*cos(a*t)', 'sin(t) - 2*sin(a*t)', 'a*c*sin(3*t)', '0', '2*pi', '0.01', '0']
|
||||
['Trefoil knot O2', '2', '1', '1 #-1 for senester', '(4 + cos(3*t))*cos(a*t)', '(4 + cos(3*t))*sin(a*t)', 'c*sin(3*t)', '0', '2*pi', '0.01', '0']
|
28
WorkFeature/ParCurve/Ressources/ParametricSurf.dat
Normal file
28
WorkFeature/ParCurve/Ressources/ParametricSurf.dat
Normal file
|
@ -0,0 +1,28 @@
|
|||
Name, a , b (a),c (a,b), X (a,b,c,U,V), Y (a,b,c,U,V), Z (a,b,c,U,V), U min, U max, U step, V min, V max, V step, Comment
|
||||
['Astroid', '4', '3', '2', 'a*pow(cos(v),3)*pow(cos(u),3)','b*pow(cos(v),3)*pow(sin(u),3)','c*pow(sin(v),3)', '0.0', '2*pi', '0.01', '-2.0', '2.0', '0.01', '']
|
||||
['Spheroid', '5', '5', '5', 'a*cos(u)*sin(v)','b*sin(u)*sin(v)','c*cos(v)', '-0.01', '2*pi+0.01', '0.01', '-0.01', 'pi+0.01', '0.01', '']
|
||||
['Spheroid_2', '5', '8', '6', 'a*cos(u)*sin(v)','b*sin(u)*sin(v)','c*cos(v)*sin(v)', '-0.01', '2*pi+0.01', '0.01', '-0.01', 'pi+0.01', '0.01', '']
|
||||
['Spheroid_3', '5', '8', '6', 'a*cos(u)*sin(v)','b*sin(u)*sin(v)','c*cos(v)*cos(v)', '-0.01', '2*pi+0.01', '0.01', '-0.01', 'pi+0.01', '0.01', '']
|
||||
['Ellipsoid', '5', '3', '5', 'a*cos(v)*cos(u)', 'b*cos(v)*sin(u)', 'c*sin(v)', '-5.0', '5.0', '0.01', '-5.0', '5.0', '0.01', '']
|
||||
['Cone', '0.1', '5', '2', 'b*v*cos(u)*tan(a)', 'b*v*sin(u)*tan(a)', 'c*v', '-0.01', '2*pi+0.01', '0.01', '2', '10.0', '0.01', '']
|
||||
['Dini \'s surface-1', '10', '2', '1', 'a*cos(u)*sin(v)', 'a*sin(u)*sin(v)', 'a*(cos(v) + log10(tan(v/2)))+b*u', '-0.01', '2*pi+0.01', '0.01', '0.01', '1.0', '0.01', '']
|
||||
['Dini \'surface-2', '10', '2', '1', 'a*cos(u)*sin(v)', 'a*sin(u)*sin(v)', 'a*(cos(v) + log10(tan(v/2)))+b*u', '-0.01', '2*pi+0.01', '0.01', '0.01', 'pi', '0.01', '']
|
||||
['Egg box', '4', '4', '1', 'u', 'v', 'a*(sin(u)/b+sin(v)/b)', '-10.0', '10.0', '0.01', '-10.0', '10.0', '0.01', '']
|
||||
['Gaudi roof', '1', '1', '0.25', 'u', '2*v', 'c*u*sin(v/a)', '-10.0', '10.0', '0.1', '-10.0', '10.0', '0.1', '']
|
||||
['Hector Guimard Surface', '5', '1.5', '0.5', '((1-u)*a+u*b)*cos(v)', 'b*u*sin(v)', 'c*u*sin(v)*sin(v)', '0.0', '10.0', '0.1', '0.0', '10.0', '0.1', '']
|
||||
['Monkey saddle', '5', '5', '0.02', 'a*u', 'b*v', 'c*(pow(u,3)-3*u*v*v)', '-10.0', '10.0', '0.1', '-10.0', '10.0', '0.1', '']
|
||||
['Catenoid', '5', '5', '10', 'a*cosh(v)*cos(u)', 'b*cosh(v)*sin(u)', 'c*v', '-pi-0.01', 'pi+0.01', '0.01', '-pi', 'pi', '0.01', '']
|
||||
['Wave', '10', '10', '10', 'a*u', 'b*v', 'c*sin(u*u+v*v)', '-5', '5', '0.5', '-5', '5', '0.5', '']
|
||||
['Enneper Surface', '3', '3', '3', 'u*(1-pow(u,2)/3+pow(v,2))/a', '-v*(1-pow(v,2)/3+pow(u,2))/b', '(u*u-v*v)/c', '-5', '5', '0.01', '-5', '5', '0.01', '']
|
||||
['Cartan \'s umbrella', '10', '10', '10', 'a*u*cos(v)', 'b*u*sin(v)', 'c*u*pow(cos(v),3)', '-pi-0.01', 'pi+0.01', '0.01', '-2', '2', '0.01', '']
|
||||
['Sinusoidal cone', '10', '10', '2 #From 1 to 10', 'a*u*cos(v)', 'b*u*sin(v)', 'b*u*cos(c*v)', '-pi-0.01', 'pi+0.01', '0.01', '-pi-0.01', 'pi+0.01', '0.01', '']
|
||||
['Bohemian dome', '10', '10', '10', 'a*cos(u)', 'b*cos(v)', 'a*sin(u)+ b*sin(v)', '-pi-0.01', 'pi+0.01', '0.01', '-pi-0.01', 'pi+0.01', '0.01', '']
|
||||
['Torus', '10', '5', '5', '(a +b*cos(v))*cos(u)', '(a +b*cos(v))*sin(u)', 'c*sin(v)', '-pi-0.01', 'pi+0.01', '0.01', '-pi-0.01', 'pi+0.01', '0.01', '']
|
||||
['Sea-shell', '2', '.4926839011', '10', 'exp(u/c)*cos(u)*(1+b*cos(v)) ', 'exp(u/c)*sin(u)*(1+b*cos(v)) ', 'exp(u/c)*(1+b*sin(v))', '-30', '4', '0.01', '-pi-0.01', 'pi+0.01', '0.01', '']
|
||||
['One-surface Hyperboloid', '10', '10', '10', 'a*cos(u)*cosh(v)', 'b*sin(u)*cosh(v)', 'c*sinh(v)', '-pi-0.01', 'pi+0.01', '0.01', '-1', '1', '0.01', '']
|
||||
['Two-surface Hyperboloid', '10', '10', '10', 'a*cos(u)*sinh(v)', 'b*sin(u)*sinh(v)', 'c*cosh(v)', '-pi-0.01', 'pi+0.01', '0.01', '0', '1', '0.01', '']
|
||||
['Glass', '10', '10', '10', 'a*cos(u)*sin(v)*cos(v)', 'b*sin(u)*sin(v)*cos(v)', 'c*sinh(v)', '-pi-0.01', 'pi+0.01', '0.01', '-0.30', '1', '0.01', '']
|
||||
['Roman Surface', '10', '10', '10', 'a*a*cos(u)*sin(v)*cos(v)', 'b*a*sin(u)*sin(v)*cos(v)', 'c*c*cos(u)*sin(u)*cos(v)*cos(v)', '-pi-0.01', 'pi+0.01', '0.01', '-1', '1', '0.01', '']
|
||||
['Helix', '4', '3', '2', 'cos(u)/a+cos(v)', 'sin(u)/a+sin(v)', 'v', '0.0', '2*pi', '0.01', '0', '4*pi', '0.01', '']
|
||||
['Plane', '4', '3', '2', 'c+10*a*u+b*v', '2*c+a*u+5*b*v', '3*c+a*u+10*b*v', '-10', '10', '0.1', '-10', '10', '0.1', '']
|
||||
["Bouligand 's cushion", '4', '3', '2', 'a*sin(u)', 'b*sin(v)', 'c*cos(u)*cos(v)', '0.0', '2*pi+0.02', '0.01', '0', '2*pi+0.02', '0.01', '']
|
0
WorkFeature/ParCurve/Ressources/__init__.py
Normal file
0
WorkFeature/ParCurve/Ressources/__init__.py
Normal file
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1039</width>
|
||||
<width>1247</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -127,6 +127,11 @@
|
|||
<string>t step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Cartesian</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Comments</string>
|
379
WorkFeature/ParCurve/Ui/WF_ObjSurfaceEditGui_2016.ui
Normal file
379
WorkFeature/ParCurve/Ui/WF_ObjSurfaceEditGui_2016.ui
Normal file
|
@ -0,0 +1,379 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1247</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>3D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric3D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>c (a, b) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Z (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Astroid</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>a*pow(cos(v),3)*pow(cos(u),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>b*pow(cos(v),3)*pow(sin(u),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>c*pow(sin(v),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="10">
|
||||
<property name="text">
|
||||
<string>-2.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="11">
|
||||
<property name="text">
|
||||
<string>2.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="12">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="7">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="8">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="9">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="10">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
3351
WorkFeature/ParCurve/Ui/WF_ParCurveGui_2016.ui
Normal file
3351
WorkFeature/ParCurve/Ui/WF_ParCurveGui_2016.ui
Normal file
File diff suppressed because it is too large
Load Diff
0
WorkFeature/ParCurve/Ui/__init__.py
Normal file
0
WorkFeature/ParCurve/Ui/__init__.py
Normal file
10
WorkFeature/ParCurve/Ui/sh_ui2pySide
Normal file
10
WorkFeature/ParCurve/Ui/sh_ui2pySide
Normal file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
m_ui_file=$1
|
||||
m_ui_base=`basename ${m_ui_file} .ui`
|
||||
pyuic4 ${m_ui_base}.ui > ${m_ui_base}.py
|
||||
cat ${m_ui_base}.py | sed 's#Icons/#icons:#g ' | sed 's#PyQt4#PySide#g ' | sed 's#QtCore.QString.fromUtf8(#_fromUtf8(#g ' | sed 's#../icons:#icons:#g '>tmp.py
|
||||
mv tmp.py ${m_ui_base}.py
|
||||
#cp ${m_ui_base}.py ../${m_ui_base}.py
|
||||
|
||||
|
405
WorkFeature/ParCurve/WF_ObjParCurveEdit_2016.py
Normal file
405
WorkFeature/ParCurve/WF_ObjParCurveEdit_2016.py
Normal file
|
@ -0,0 +1,405 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Sat May 30 18:53:08 2015
|
||||
|
||||
@author: laurent
|
||||
"""
|
||||
import sys
|
||||
import os.path
|
||||
sys.path.append(os.path.dirname(__file__))
|
||||
#from ParCurve2DEditGui_2015 import Ui_Form
|
||||
import Ui.WF_ObjParCurve2DEditGui_2016 as EDIT_2D
|
||||
import Ui.WF_ObjParCurve3DEditGui_2016 as EDIT_3D
|
||||
import Ui.WF_ObjSurfaceEditGui_2016 as EDIT_SURF
|
||||
from Utils.Text import read_text_into_list, write_text, append_text
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
import FreeCAD as App
|
||||
|
||||
global myDatabase2DName
|
||||
myDatabase2DName = "Parametric2D.dat"
|
||||
global myDatabase3DName
|
||||
myDatabase3DName = "Parametric3D.dat"
|
||||
global myDatabaseSurfName
|
||||
myDatabaseSurfName = "ParametricSurf.dat"
|
||||
####################################################################################
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
_fromUtf8 = lambda s: s
|
||||
|
||||
|
||||
index = ['Name', 'a' , 'b' , 'c' , 'X' , 'Y', 'Z', 'tmin', 'tmax', 'tstep']
|
||||
d1 = ["default",37, 1, '(a+cos(a*t)*2)*b', 'cos(t)*c', 'sin(t)*c', 0, 0., '2*pi', 0.01]
|
||||
d2 = ["spiral", 5, 0, 10, 'c*sin(t)', 'c*cos(t)', 'a*0.05*t', .0, '20*pi', '0.05*pi']
|
||||
d3 = ["Seam of a tennis ball", '5', '5', '2*(sqrt(a*b))', 'a*(cos(t))+b*(cos(3*t))',
|
||||
'a*(sin(t))-b*(sin(3*t))', 'c*(sin(2*t))', 0., '2*pi', '0.05*pi']
|
||||
|
||||
|
||||
class Model(QtCore.QAbstractTableModel):
|
||||
def __init__(self,tableWidget):
|
||||
super(Model, self).__init__()
|
||||
self.table = []
|
||||
#print "Initialize table " + str(self.table)
|
||||
for i_row in range(tableWidget.rowCount()):
|
||||
m_line = []
|
||||
for i_column in range(tableWidget.columnCount()):
|
||||
#print str(i_column)
|
||||
m_item = tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
#print str(tableWidget.item(i_row, i_column).text())
|
||||
m_line.append(str(tableWidget.item(i_row, i_column).text()))
|
||||
|
||||
if len(m_line) != 0:
|
||||
self.table.append(m_line)
|
||||
#print str(self.table)
|
||||
self.columnNumber = 0
|
||||
self.rowNumber = 0
|
||||
self.rowNumber = len(self.table)
|
||||
if self.rowNumber != 0:
|
||||
self.columnNumber = len(self.table[0])
|
||||
|
||||
|
||||
#print "self.rowNumber=" + str(self.rowNumber)
|
||||
#print "self.columnNumber=" + str(self.columnNumber)
|
||||
|
||||
def rowCount(self, index=QtCore.QModelIndex()):
|
||||
return self.rowNumber
|
||||
def columnCount(self, index=QtCore.QModelIndex()):
|
||||
return self.columnNumber
|
||||
def flags(self, index):
|
||||
return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
|
||||
|
||||
def data(self, index, role):
|
||||
if role == QtCore.Qt.DisplayRole:
|
||||
return self.table[index.row()][index.column()]
|
||||
def setData(self, index, role, value):
|
||||
if role == QtCore.Qt.DisplayRole:
|
||||
self.table[index.row()][index.column()] = value
|
||||
|
||||
|
||||
class tableWidget():
|
||||
def __init__(self, database):
|
||||
"""
|
||||
parameter database : the name of database file without path.
|
||||
"""
|
||||
# Flag for common database
|
||||
self.database_exists = False
|
||||
self.database_name = None
|
||||
self.curves_number = 0
|
||||
self.curves_loaded = False
|
||||
# Flag for user database
|
||||
self.database_user_exists = False
|
||||
self.database_user_name = None
|
||||
self.curves_user_number = 0
|
||||
self.curves_user_loaded = False
|
||||
if database :
|
||||
# Check if database file exists in current script directory
|
||||
m_current = os.path.dirname(__file__)
|
||||
m_dirs_to_look = [str(m_current), str(m_current) + "/Ressources",]
|
||||
for m_dir in m_dirs_to_look:
|
||||
self.database_path = m_dir + "/"
|
||||
#print self.database_path
|
||||
self.database_name = str(self.database_path) + str(database)
|
||||
if os.path.exists(self.database_name):
|
||||
self.database_exists = True
|
||||
|
||||
# Check if database file exists in home directory
|
||||
m_home = os.path.expanduser("~")
|
||||
self.database_path = m_home + "/"
|
||||
self.database_user_name = str(self.database_path) + str(database)
|
||||
if os.path.exists(self.database_user_name):
|
||||
self.database_user_exists = True
|
||||
|
||||
self.header = None
|
||||
|
||||
# This Object ill be created with the setupUi
|
||||
#self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget = None
|
||||
#===============================================================================
|
||||
# class tableWidget2D(EDIT_2D.Ui_Form, tableWidget):
|
||||
# def __init__(self, database="Parametric2D.dat"):
|
||||
# EDIT_2D.Ui_Form.__init__(self)
|
||||
# tableWidget.__init__(self, database)
|
||||
# self.header = "Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep"
|
||||
#
|
||||
# def setupUi(self, Form, combox):
|
||||
# EDIT_2D.Ui_Form.setupUi(self,Form)
|
||||
# tableWidget.setupUi(self, Form, combox)
|
||||
#===============================================================================
|
||||
self.dialog = None
|
||||
self.comboBox = None
|
||||
self.connections_for_button_pressed = None
|
||||
self.connections_for_combobox_changed = None
|
||||
self.model = None
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
self.dialog = Form
|
||||
self.comboBox = combox
|
||||
self.updateModel()
|
||||
|
||||
# Connect to functions
|
||||
self.connections_for_button_pressed = {
|
||||
"button_addRow" : "insertRowAfter",
|
||||
"button_removeRow" : "removeSelectedRow",
|
||||
"button_load" : "loadDatabase",
|
||||
"button_save" : "saveDatabase",
|
||||
"button_quit" : "widgetQuit",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"comboBox_select" : "selectCurve",
|
||||
}
|
||||
|
||||
for m_key, m_val in self.connections_for_button_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self, str(m_key))) + " and " + str(getattr(self, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_combobox_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self, str(m_key))) + " and " + str(getattr(self, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self, str(m_key)),
|
||||
QtCore.SIGNAL("currentIndexChanged(QString)"),getattr(self, str(m_val)))
|
||||
self.curves_number = 0
|
||||
self.curves_user_number = 0
|
||||
if self.database_exists:
|
||||
self.curves_number = self.loadDatabase(self.database_name)
|
||||
print "Database : " + str(self.database_name)
|
||||
print "Loaded from common database : " + str(self.curves_number) + " curves !"
|
||||
if self.curves_number != 0:
|
||||
self.curves_loaded = True
|
||||
|
||||
if self.database_user_exists:
|
||||
self.curves_user_number = self.loadDatabase(self.database_user_name)
|
||||
print "Database : " + str(self.database_user_name)
|
||||
print "Loaded from user database : " + str(self.curves_user_number) + " curves !"
|
||||
if self.curves_user_number != 0:
|
||||
self.curves_user_loaded = True
|
||||
|
||||
|
||||
def updateModel(self):
|
||||
self.model = Model(self.tableWidget)
|
||||
self.comboBox.setModel(self.model)
|
||||
self.comboBox.setModelColumn(0)
|
||||
|
||||
|
||||
def insertRow(self,row):
|
||||
self.tableWidget.insertRow(row)
|
||||
|
||||
|
||||
def insertRowAfter(self):
|
||||
self.insertRow(self.tableWidget.rowCount())
|
||||
|
||||
|
||||
def setRowCount(self,row):
|
||||
self.tableWidget.setRowCount(row)
|
||||
|
||||
|
||||
def removeSelectedRow(self):
|
||||
m_index = self.tableWidget.currentRow()
|
||||
self.removeRow(m_index)
|
||||
|
||||
|
||||
def removeRow(self,row):
|
||||
self.tableWidget.removeRow(row)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def removeLastRow(self):
|
||||
self.removeRow(self.tableWidget.rowCount()-1)
|
||||
|
||||
|
||||
def insertDataAfter(self, data, rowCount):
|
||||
if isinstance(data,list) !=True:
|
||||
print "Type of input data must be a 'list'"
|
||||
return
|
||||
m_rowNumber = len(data)
|
||||
m_columnNumber = len(data[0])
|
||||
m_widget = self.tableWidget
|
||||
for i in range(m_rowNumber):
|
||||
self.insertRowAfter()
|
||||
for j in range(m_columnNumber):
|
||||
item = QtGui.QTableWidgetItem(str(data[i][j]))
|
||||
m_widget.setItem(rowCount + i, j, item)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def insertData(self, data):
|
||||
if isinstance(data,list) !=True:
|
||||
print "Type of input data must be a 'list'"
|
||||
return
|
||||
#print str(data)
|
||||
m_rowNumber = len(data)
|
||||
m_columnNumber = len(data[0])
|
||||
m_widget = self.tableWidget
|
||||
m_widget.setRowCount(m_rowNumber)
|
||||
#m_widget.setColumnCount(columns)
|
||||
#m_widget.setHorizontalHeaderLabels(['name', 'num','x','y','z'])
|
||||
for i in range(m_rowNumber):
|
||||
for j in range(m_columnNumber):
|
||||
item = QtGui.QTableWidgetItem(str(data[i][j]))
|
||||
m_widget.setItem(i, j, item)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def addCurveData(self,data):
|
||||
m_curveList = self.selectAllCurves()
|
||||
m_curveList.append(data)
|
||||
self.insertData(m_curveList)
|
||||
|
||||
|
||||
def loadDatabase(self, my_database_name):
|
||||
m_line = 0
|
||||
try:
|
||||
m_lines = read_text_into_list(my_database_name)
|
||||
del m_lines[0]
|
||||
m_data = []
|
||||
for m_line in m_lines:
|
||||
d = eval(m_line)
|
||||
#print str(d)
|
||||
m_data.append(d)
|
||||
|
||||
#print str(self.curves_number + self.curves_user_number)
|
||||
if (self.curves_number + self.curves_user_number) == 0:
|
||||
self.insertData(m_data)
|
||||
else:
|
||||
self.insertDataAfter(m_data,(self.curves_number + self.curves_user_number))
|
||||
|
||||
return len(m_data)
|
||||
except:
|
||||
message = "Unable to load the database file \n" + str(my_database_name)
|
||||
message += "\nAt line \n" + str(m_line)
|
||||
print message
|
||||
App.Console.PrintError("\nERROR : " + message)
|
||||
|
||||
|
||||
def saveDatabase(self, my_database_name = None):
|
||||
if my_database_name in [None]:
|
||||
my_database_name = self.database_user_name
|
||||
|
||||
if (self.curves_number) != 0:
|
||||
m_curves = self.selectAllCurvesFrom(self.curves_number)
|
||||
else:
|
||||
m_curves = self.selectAllCurves()
|
||||
|
||||
#print str(m_curves)
|
||||
write_text(filename=my_database_name, text=str(self.header))
|
||||
append_text(filename=my_database_name, text="")
|
||||
for m_curve in m_curves:
|
||||
append_text(filename=my_database_name, text=str(m_curve))
|
||||
|
||||
|
||||
def selectCurve(self, *argc):
|
||||
#print str(*argc)
|
||||
m_curveRow = self.tableWidget.row(self.tableWidget.findItems(str(*argc), QtCore.Qt.MatchExactly)[0])
|
||||
print str(m_curveRow)
|
||||
m_line = []
|
||||
for i_column in range(self.tableWidget.columnCount()):
|
||||
#print str(i_column)
|
||||
m_item = self.tableWidget.item(m_curveRow, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
#print str(tableWidget.item(i_row, i_column).text())
|
||||
m_line.append(str(self.tableWidget.item(m_curveRow, i_column).text()))
|
||||
#print str(m_line)
|
||||
return m_line
|
||||
|
||||
def selectAllCurvesFrom(self,row):
|
||||
m_lineList = []
|
||||
m_total_rows = self.tableWidget.rowCount()
|
||||
m_total_cols = self.tableWidget.columnCount()
|
||||
for i_row in range(row, m_total_rows):
|
||||
m_line = []
|
||||
for i_column in range(m_total_cols):
|
||||
m_item = self.tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
m_line.append(str(self.tableWidget.item(i_row, i_column).text()))
|
||||
m_lineList.append(m_line)
|
||||
#print str(m_lineList)
|
||||
return m_lineList
|
||||
|
||||
|
||||
def selectAllCurves(self):
|
||||
m_lineList = []
|
||||
m_total_rows = self.tableWidget.rowCount()
|
||||
m_total_cols = self.tableWidget.columnCount()
|
||||
for i_row in range(m_total_rows):
|
||||
m_line = []
|
||||
for i_column in range(m_total_cols):
|
||||
m_item = self.tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
m_line.append(str(self.tableWidget.item(i_row, i_column).text()))
|
||||
m_lineList.append(m_line)
|
||||
#print str(m_lineList)
|
||||
return m_lineList
|
||||
|
||||
def widgetQuit(self):
|
||||
self.dialog.hide()
|
||||
|
||||
|
||||
class tableWidget2D(EDIT_2D.Ui_Form, tableWidget):
|
||||
def __init__(self, database="Parametric2D.dat"):
|
||||
EDIT_2D.Ui_Form.__init__(self)
|
||||
tableWidget.__init__(self, database)
|
||||
self.header = "Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep"
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
EDIT_2D.Ui_Form.setupUi(self,Form)
|
||||
tableWidget.setupUi(self, Form, combox)
|
||||
|
||||
|
||||
class tableWidget3D(EDIT_3D.Ui_Form, tableWidget):
|
||||
def __init__(self, database="Parametric3D.dat"):
|
||||
EDIT_3D.Ui_Form.__init__(self)
|
||||
tableWidget.__init__(self, database)
|
||||
self.header = "Name, a (t), b (a,t),c (a,b,t), X (a,b,c,t), Y (a,b,c,t), Z (a,b,c,t), tmin, tmax, tstep, Cartesian"
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
EDIT_3D.Ui_Form.setupUi(self,Form)
|
||||
tableWidget.setupUi(self, Form, combox)
|
||||
|
||||
|
||||
class tableWidgetSurf(EDIT_SURF.Ui_Form, tableWidget):
|
||||
def __init__(self, database="ParametricSurf.dat"):
|
||||
EDIT_SURF.Ui_Form.__init__(self)
|
||||
tableWidget.__init__(self, database)
|
||||
self.header = "Name, a , b (a),c (a,b), X (a,b,c,U,V), Y (a,b,c,U,V), Z (a,b,c,U,V), U min, U max, U step, V min, V max, V step, Comment"
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
EDIT_SURF.Ui_Form.setupUi(self,Form)
|
||||
tableWidget.setupUi(self, Form, combox)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QtGui.QApplication(sys.argv)
|
||||
#app = QtGui.qApp
|
||||
#app.exec_()
|
||||
myNewWidget = QtGui.QDockWidget()
|
||||
myNewWidget = QtGui.QWidget()
|
||||
#myNewWidget.ui = Ui_Form()
|
||||
myNewWidget.ui = tableWidget()
|
||||
myNewWidget.ui.setupUi(myNewWidget)
|
||||
#myNewWidget.ui.insertRow(1)
|
||||
#myNewWidget.ui.insertRow(3)
|
||||
#myNewWidget.ui.removeRow(3)
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.removeLastRow()
|
||||
#myNewWidget.ui.setRowCount(20)
|
||||
mydata = []
|
||||
mydata.append(d1)
|
||||
mydata.append(d2)
|
||||
mydata.append(d3)
|
||||
myNewWidget.ui.insertData(mydata)
|
||||
myNewWidget.show()
|
||||
|
||||
#mw = app.activeWindow()
|
||||
#mw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewWidget)
|
||||
app.exec_()
|
2190
WorkFeature/ParCurve/WF_ObjParCurve_2016.py
Normal file
2190
WorkFeature/ParCurve/WF_ObjParCurve_2016.py
Normal file
File diff suppressed because it is too large
Load Diff
0
WorkFeature/ParCurve/__init__.py
Normal file
0
WorkFeature/ParCurve/__init__.py
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2015.ui'
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2016.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:40 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
# Created: Fri Dec 30 15:42:17 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
282
WorkFeature/Ui/WF_ObjParCurve2DEditGui_2016.ui
Normal file
282
WorkFeature/Ui/WF_ObjParCurve2DEditGui_2016.ui
Normal file
|
@ -0,0 +1,282 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1039</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>2D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric2D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a (t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Polar</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Circle</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>10 # Radius</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>a</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>a*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>a*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -1,9 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2015.ui'
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2016.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:50 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
# Created: Fri Dec 30 15:42:28 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
@ -26,7 +26,7 @@ except AttributeError:
|
|||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
Form.resize(1247, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
|
@ -47,7 +47,7 @@ class Ui_Form(object):
|
|||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(11)
|
||||
self.tableWidget.setColumnCount(12)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
|
@ -78,6 +78,8 @@ class Ui_Form(object):
|
|||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
|
@ -191,6 +193,8 @@ class Ui_Form(object):
|
|||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "Cartesian", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(11)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
349
WorkFeature/Ui/WF_ObjParCurve3DEditGui_2016.ui
Normal file
349
WorkFeature/Ui/WF_ObjParCurve3DEditGui_2016.ui
Normal file
|
@ -0,0 +1,349 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1247</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>3D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric3D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a (t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>c (a, b, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Z (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Cartesian</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Cylindrical helix</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>10*0.05 #Vert. step</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>10 # Radius</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>c*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>c*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>a*t</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>5*2*pi #5 circles</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<property name="text">
|
||||
<string>Circle with Teeth</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<property name="text">
|
||||
<string>37</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<property name="text">
|
||||
<string>(a+cos(a*t)*2)*b</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<property name="text">
|
||||
<string>c*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<property name="text">
|
||||
<string>c*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="7">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="8">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
270
WorkFeature/Ui/WF_ObjSurfaceEditGui_2016.py
Normal file
270
WorkFeature/Ui/WF_ObjSurfaceEditGui_2016.py
Normal file
|
@ -0,0 +1,270 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjSurfaceEditGui_2016.ui'
|
||||
#
|
||||
# Created: Fri Dec 30 15:42:38 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1247, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(14)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(12, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(13, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 12, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 10, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "3D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric3D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.verticalHeaderItem(2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "c (a, b) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "X (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "Y (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "Z (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "u min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "u max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "u step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "v min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(11)
|
||||
item.setText(_translate("Form", "v max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(12)
|
||||
item.setText(_translate("Form", "v step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(13)
|
||||
item.setText(_translate("Form", "comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Astroid", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "4", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "a*pow(cos(v),3)*pow(cos(u),3)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "b*pow(cos(v),3)*pow(sin(u),3)", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "c*pow(sin(v),3)", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0.0", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(0, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(0, 10)
|
||||
item.setText(_translate("Form", "-2.0", None))
|
||||
item = self.tableWidget.item(0, 11)
|
||||
item.setText(_translate("Form", "2.0", None))
|
||||
item = self.tableWidget.item(0, 12)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(1, 0)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 1)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 2)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 3)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 4)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 5)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 6)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 7)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 8)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 9)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
379
WorkFeature/Ui/WF_ObjSurfaceEditGui_2016.ui
Normal file
379
WorkFeature/Ui/WF_ObjSurfaceEditGui_2016.ui
Normal file
|
@ -0,0 +1,379 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1247</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>3D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric3D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>c (a, b) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Z (a,b,c,u,v)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>u step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>v step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Astroid</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>a*pow(cos(v),3)*pow(cos(u),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>b*pow(cos(v),3)*pow(sin(u),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>c*pow(sin(v),3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="10">
|
||||
<property name="text">
|
||||
<string>-2.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="11">
|
||||
<property name="text">
|
||||
<string>2.0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="12">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="7">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="8">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="9">
|
||||
<property name="text">
|
||||
<string> </string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="10">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -54,17 +54,23 @@
|
|||
"""
|
||||
# First two lines to be able to launch with python
|
||||
import sys
|
||||
import os.path
|
||||
|
||||
from WorkFeature import WF_ObjParCurve_2015
|
||||
# get the path of the current python script
|
||||
m_current_path = os.path.realpath(__file__)
|
||||
# Change this by your own FreeCAD lib path to import FreeCAD
|
||||
if not sys.path.__contains__(m_current_path):
|
||||
sys.path.append(m_current_path)
|
||||
|
||||
from ParCurve.WF_ObjParCurve_2016 import *
|
||||
import WFGui_2015 as WFGui
|
||||
from WF_ObjRot_2015 import *
|
||||
from WF_Utils_2015 import *
|
||||
from WF_ObjParCurve_2015 import *
|
||||
|
||||
global myRelease
|
||||
myRelease = "2016_09_10"
|
||||
myRelease = "2016_12_30"
|
||||
|
||||
|
||||
import os.path
|
||||
import time
|
||||
import math
|
||||
import itertools
|
||||
|
@ -129,12 +135,14 @@ m_numberLinePart = 2
|
|||
m_numberLineCut = 2
|
||||
m_numberPointCutWire = 2
|
||||
m_numberAxisCutWire = 2
|
||||
m_numberRandomPoint = 1
|
||||
m_numberCircleCut = 2
|
||||
m_numberPlane = 1
|
||||
m_numberLine = 1
|
||||
m_numberLine2 = 1
|
||||
m_numberPoint = 1
|
||||
m_distanceLinePoint = 0.0
|
||||
m_distanceRandomPoints = 10.0
|
||||
m_extensionTwoPointsAxis = 0.0
|
||||
m_extensionLinePointAxis = 0.0
|
||||
m_extensionLine = 0.0
|
||||
|
@ -2000,6 +2008,35 @@ def plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis", grp="WorkAx
|
|||
return axis_User_Name, axis
|
||||
|
||||
|
||||
def plot_curve(Matriz, Close, Face, part="Part::Feature", name="Curve", grp="WorkWires", color=(1.00,0.67,0.00)):
|
||||
m_close = Close
|
||||
m_face = Face
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
curvea = Part.makePolygon(Matriz)
|
||||
curve = Draft.makeWire(curvea,closed=m_close,face=m_face)
|
||||
FreeCAD.ActiveDocument.ActiveObject.Label = str(name)
|
||||
|
||||
if m_close == True and m_face == True:
|
||||
Draft.upgrade(FreeCADGui.Selection.getSelection(),delete=True)
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
App.ActiveDocument.getObject( grp ).addObject(curve)
|
||||
curve_User_Name = curve.Label
|
||||
#Gui.ActiveDocument.getObject(curve_User_Name).LineColor = color
|
||||
return curve_User_Name, curve
|
||||
|
||||
|
||||
def plot_polygon(Matriz, part="Part::Feature", name="Polygon", grp="WorkWires", color=(1.00,0.67,0.00)):
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
polygon = App.ActiveDocument.addObject(part, name)
|
||||
polygon.Shape = Part.makePolygon(Matriz)
|
||||
App.ActiveDocument.getObject( grp ).addObject(polygon)
|
||||
polygon_User_Name = polygon.Label
|
||||
Gui.ActiveDocument.getObject(polygon_User_Name).LineColor = color
|
||||
return polygon_User_Name, polygon
|
||||
|
||||
|
||||
def plot_circle(Radius, Position, Direction, part="Part::Feature", name="Circle", grp="WorkCircles"):
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
|
@ -3141,7 +3178,6 @@ def plot_pointLinePoint():
|
|||
Be aware that if the line is not extended enough the intersection Point is still created (as if).
|
||||
"""
|
||||
msg=verbose
|
||||
msg=1
|
||||
|
||||
error_msg = """Unable to create (Point,Line) Intersection(s) :
|
||||
First
|
||||
|
@ -3272,6 +3308,8 @@ def distanceLinePoint(value):
|
|||
#plot_alongLinePoint()
|
||||
except ValueError:
|
||||
printError_msg("Distance must be valid number !")
|
||||
|
||||
|
||||
def plot_alongLinePoint():
|
||||
""" Plot a point at a certain distance along the line respecting to the choosen
|
||||
reference starting point.
|
||||
|
@ -3348,6 +3386,88 @@ def plot_alongLinePoint():
|
|||
|
||||
|
||||
def plot_2LinesPoint():
|
||||
""" Point(s)=(Line(s),Line(s)):
|
||||
Plot one or two Point(s) at minimum distance of two Lines
|
||||
Create a unique Point at intersection of 2 crossing Lines.
|
||||
|
||||
First
|
||||
- Select two or more Line/Edge(s) and
|
||||
- Then Click on the button
|
||||
|
||||
Plot the point A on the first Line given and the point B on the second Line.
|
||||
The Vector AB perpendicular to the first and second Line.
|
||||
|
||||
"""
|
||||
msg=verbose
|
||||
msg=1
|
||||
|
||||
error_msg = """Unable to create (Line,Line) Intersection(s) :
|
||||
First
|
||||
- Select two or more Line/Edge(s) and
|
||||
- Then Click on the button
|
||||
but at least select two different Lines !"""
|
||||
result_msg = " : (Line,Line) Intersection(s) are created !"
|
||||
|
||||
createFolders('WorkPoints')
|
||||
m_dir = 'Set'
|
||||
name = "Intersection"
|
||||
part = "Part::Feature"
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
try:
|
||||
m_r = App.ActiveDocument.getObject("WorkPoints").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||
except:
|
||||
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||
return None
|
||||
m_dir = m_r.Name
|
||||
|
||||
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
||||
if msg != 0:
|
||||
print_msg(str(m_selEx))
|
||||
m_sel = Selection(m_selEx)
|
||||
if not m_sel :
|
||||
print_msg("Unable to create a Selection Object !")
|
||||
return None
|
||||
if msg != 0:
|
||||
print_msg(str(m_sel))
|
||||
|
||||
try:
|
||||
Number_of_Edges, Edge_List = m_sel.get_segments(getfrom=["Segments","Curves","Planes","Objects"])
|
||||
if msg != 0:
|
||||
print_msg("Number_of_Edges=" + str(Number_of_Edges))
|
||||
|
||||
if Number_of_Edges >= 2:
|
||||
for i in range( Number_of_Edges -1 ):
|
||||
f1 = Edge_List[i]
|
||||
f2 = Edge_List[i+1]
|
||||
#print_msg(str(f1))
|
||||
#print_msg(str(f2))
|
||||
d = f1.distToShape(f2)
|
||||
print_msg(str(d))
|
||||
Distance = d[0]
|
||||
Vector_A = d[1][0][0]
|
||||
#print_point(Vector_A,"Vector_A is : ")
|
||||
Vector_B = d[1][0][1]
|
||||
if abs(Distance) <= 1.e-14:
|
||||
Center_User_Name = plot_point(Vector_A, part, name, str(m_dir))
|
||||
print_msg(str(Center_User_Name) + result_msg )
|
||||
else:
|
||||
Center_User_Name = plot_point(Vector_A, part, name, str(m_dir))
|
||||
print_point(Vector_A,str(Center_User_Name) + result_msg + " at :")
|
||||
Center_User_Name = plot_point(Vector_B, part, name, str(m_dir))
|
||||
print_point(Vector_B,str(Center_User_Name) + result_msg + " at :")
|
||||
print_msg(" Distance between the points is : " + str(Distance))
|
||||
else:
|
||||
printError_msg(error_msg)
|
||||
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
def plot_2LinesPoint2():
|
||||
""" Plot one or two Point(s) at minimum distance of two Lines.
|
||||
"""
|
||||
msg=0
|
||||
|
@ -3386,7 +3506,7 @@ def plot_2LinesPoint():
|
|||
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
|
||||
def numberPoint(value):
|
||||
""" Respond to the change in number of point from the spin box.
|
||||
|
@ -3531,6 +3651,112 @@ def plot_distPoint():
|
|||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
def plot_distPoint2():
|
||||
""" Axes=(Axis,Pt,dist)):
|
||||
Create an Axis parallel to a given Axis, Point at a given distance.
|
||||
The Axis is created on the Plane defined by the given Axis and Point.
|
||||
- First select an Axis (or several Axes) and a Point
|
||||
(you can also select several points to define different Planes)
|
||||
|
||||
NB: The distance to the Axis created can be defined first.
|
||||
Positive number in one direction and negative in the other one.
|
||||
The second number indicates the number of Axes to create.
|
||||
|
||||
If an Edge of a Cube is selected the Cube is duplicate with the corresponding
|
||||
"""
|
||||
global verbose
|
||||
global m_numberPoint
|
||||
global m_distPoint
|
||||
msg=verbose
|
||||
createFolders('WorkPoints')
|
||||
error_msg = "Unable to create Point(s) : \nSelect one (or several) Point and one or several Lines"
|
||||
result_msg = " : Point(s) created !"
|
||||
|
||||
Selection = get_SelectedObjectsWithParent(info=msg, printError=False)
|
||||
|
||||
try:
|
||||
SelectedObjects = Selection
|
||||
Number_of_Points = SelectedObjects[0]
|
||||
Number_of_Edges = SelectedObjects[1]
|
||||
|
||||
if (Number_of_Edges >= 1) and (Number_of_Points >= 1):
|
||||
Edge_List = SelectedObjects[4]
|
||||
Points_List = SelectedObjects[3]
|
||||
if msg !=0:
|
||||
print_msg("Number_of_Points = " + str(Number_of_Points))
|
||||
print_msg("Number_of_Edges = " + str(Number_of_Edges))
|
||||
print_msg("Point List = " + str(Points_List))
|
||||
print_msg("Edge List = " + str(Edge_List))
|
||||
|
||||
# Loop on the Points
|
||||
for Selected_Point_dict in Points_List:
|
||||
if msg != 0:
|
||||
print_msg("Selected_Point_dict = " + str(Selected_Point_dict))
|
||||
for Selected_Point, Parent_Point in Selected_Point_dict.iteritems():
|
||||
if msg != 0:
|
||||
print_msg("Selected_Point = " + str(Selected_Point))
|
||||
print_msg("Parent_Point = " + str(Parent_Point))
|
||||
Point_C = Selected_Point.Point
|
||||
if msg !=0:
|
||||
print_point(Point_C, msg="Point_C : ")
|
||||
Placement1 = Selected_Point.Placement
|
||||
#Placement1 = Parent_Point.Placement
|
||||
#base1 = Placement1.Base
|
||||
#base1 = Point_C
|
||||
rot1 = Placement1.Rotation
|
||||
center_Vector = Point_C
|
||||
m_move = Base.Vector(0, 0, 0)
|
||||
Move_Vector = Base.Vector(0, 0, 0)
|
||||
# Loop on the Edges
|
||||
for Selected_Edge_dict in Edge_List:
|
||||
for Selected_Edge, Parent_Edge in Selected_Edge_dict.iteritems():
|
||||
if msg != 0:
|
||||
print_msg("Selected_Edge = " + str(Selected_Edge))
|
||||
print_msg("Parent_Edge = " + str(Parent_Edge))
|
||||
|
||||
Point_A = Selected_Edge.Vertexes[0].Point
|
||||
Point_B = Selected_Edge.Vertexes[-1].Point
|
||||
if msg !=0:
|
||||
print_point(Point_A, msg="Selected_Edge.Vertexes[0] Point_A : ")
|
||||
print_point(Point_B, msg="Selected_Edge.Vertexes[-1] Point_B : ")
|
||||
AB_Vector = Point_B.sub(Point_A)
|
||||
AB_Vector = AB_Vector.normalize()
|
||||
# plot_axis(Base.Vector(0, 0, 0), AB_Vector, "Part::Feature", "AB")
|
||||
Move_Vector = AB_Vector.multiply(m_distPoint)
|
||||
Move_Vector = Move_Vector.add(center_Vector)
|
||||
# plot_axis(Base.Vector(0, 0, 0), Move_Vector, "Part::Feature", "Move_Vector")
|
||||
m_move = Move_Vector.sub(center_Vector)
|
||||
|
||||
if msg != 0:
|
||||
print_point(Move_Vector, msg="Move_Vector = ")
|
||||
print_point(m_move, msg="m_move = ")
|
||||
print_msg("m_numberPoint = " + str(m_numberPoint))
|
||||
|
||||
for m_i in range(m_numberPoint):
|
||||
#==============================================================================
|
||||
# if objCopy == 1:
|
||||
# m_new_point = App.activeDocument().copyObject(Parent_Point)
|
||||
# else:
|
||||
#==============================================================================
|
||||
m_new_point_shape = Selected_Point.copy()
|
||||
m_new_point = App.ActiveDocument.addObject("Part::Feature", "Point_at_distance")
|
||||
m_new_point.Shape = m_new_point_shape
|
||||
App.ActiveDocument.getObject('WorkPoints').addObject(m_new_point)
|
||||
Point_User_Name = m_new_point.Label
|
||||
|
||||
newplace1 = App.Placement(m_move, rot1 )
|
||||
m_new_point.Placement = newplace1
|
||||
# Update the move
|
||||
m_move = m_move.add(Move_Vector.sub(center_Vector))
|
||||
|
||||
properties_point(Point_User_Name)
|
||||
print_msg(str(Point_User_Name) + result_msg )
|
||||
|
||||
else:
|
||||
printError_msg(error_msg)
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
def numberPointCutWire(value):
|
||||
""" Respond to the change in number of cut value from the spin box.
|
||||
|
@ -4221,7 +4447,102 @@ def point_toSave2():
|
|||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
def numberRandomPoint(value):
|
||||
""" Respond to the change in number of cut value from the spin box.
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
|
||||
try:
|
||||
# First we check if a valid number have been entered
|
||||
global m_numberRandomPoint
|
||||
if str(value) == '-':
|
||||
return
|
||||
m_numberRandomPoint = int(value)
|
||||
if msg != 0:
|
||||
print_msg("New number is :" + str(m_numberRandomPoint))
|
||||
except ValueError:
|
||||
printError_msg("Number must be valid !")
|
||||
|
||||
|
||||
def distanceRandomPoints(value):
|
||||
""" Respond to the change in distance value from the text box.
|
||||
"""
|
||||
try:
|
||||
# First we check if a valid number have been entered
|
||||
global m_distanceRandomPoints
|
||||
if str(value) == '-':
|
||||
return
|
||||
m_distanceRandomPoints = float(value)
|
||||
print_msg("New distance is :" + str(m_distanceRandomPoints))
|
||||
#plot_alongLinePoint()
|
||||
except ValueError:
|
||||
printError_msg("Distance must be valid number !")
|
||||
|
||||
|
||||
def plot_points_random():
|
||||
"""Create random Point(s).
|
||||
Define first the number of points to create and the coordinates limits.
|
||||
- Then push the button,
|
||||
or
|
||||
- Select first one point to the center desired location;
|
||||
- Then push the button.
|
||||
"""
|
||||
msg=verbose
|
||||
msg = 1
|
||||
import numpy as np
|
||||
|
||||
error_msg = """Unable to create random Point(s) :
|
||||
Define first the number of points to create and the coordinates limits.
|
||||
- Then push the button,
|
||||
or
|
||||
- Select first one point to the center desired location;
|
||||
- Then push the button.
|
||||
"""
|
||||
result_msg = " : random Point(s) created !"
|
||||
|
||||
createFolders('WorkPoints')
|
||||
m_dir = 'Set'
|
||||
name = "RandomPoint"
|
||||
part = "Part::Feature"
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
try:
|
||||
m_r = App.ActiveDocument.getObject("WorkPoints").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||
except:
|
||||
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||
return None
|
||||
m_dir = m_r.Name
|
||||
|
||||
Number_of_Points = 0
|
||||
|
||||
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
||||
if m_selEx:
|
||||
if msg != 0:
|
||||
print_msg(str(m_selEx))
|
||||
m_sel = Selection(m_selEx)
|
||||
Number_of_Points, Point_List = m_sel.get_points(getfrom=["Points"])
|
||||
if msg != 0:
|
||||
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||
|
||||
m_limit = m_distanceRandomPoints/2
|
||||
if (Number_of_Points >= 1):
|
||||
m_Point = Point_List[-1]
|
||||
for m_point_id in range(m_numberRandomPoint):
|
||||
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
||||
x -= m_Point.Point.x
|
||||
y -= m_Point.Point.y
|
||||
z -= m_Point.Point.z
|
||||
plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
||||
else:
|
||||
for m_point_id in range(m_numberRandomPoint):
|
||||
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
||||
plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
||||
|
||||
|
||||
def plot_centerObjectAxes():
|
||||
""" Create 3 Axes XY, and Z at center point of all selected objects.
|
||||
"""
|
||||
|
@ -8037,6 +8358,71 @@ def plot_wire_on_plane():
|
|||
# points.append(p.projectToPlane(p1,p4))
|
||||
# sel.Object.Points = points
|
||||
|
||||
|
||||
def plot_bezier():
|
||||
pass
|
||||
|
||||
def points_toPolygon():
|
||||
""" Create a polygon from a set of points.
|
||||
- First select several Points
|
||||
|
||||
"""
|
||||
msg=verbose
|
||||
m_close = False
|
||||
m_face = False
|
||||
|
||||
error_msg = """Unable to create Polygon :
|
||||
Select at least two points !"""
|
||||
result_msg = " : Polygon created !"
|
||||
|
||||
createFolders('WorkWires')
|
||||
m_dir = 'Set'
|
||||
name = "Polygon_from_N_Points"
|
||||
part = "Part::Feature"
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
try:
|
||||
m_r = App.ActiveDocument.getObject("WorkWires").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||
except:
|
||||
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||
return None
|
||||
m_dir = m_r.Name
|
||||
|
||||
Selection = get_SelectedObjects(info=msg, printError=False)
|
||||
|
||||
try:
|
||||
SelectedObjects = Selection
|
||||
Number_of_Points = SelectedObjects[0]
|
||||
if msg != 0:
|
||||
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||
if Number_of_Points > 1:
|
||||
m_x = 0.0
|
||||
m_y = 0.0
|
||||
m_z = 0.0
|
||||
matriz = []
|
||||
Point_List = SelectedObjects[3]
|
||||
if msg != 0:
|
||||
print_msg("Point_List=" + str(Point_List))
|
||||
|
||||
for Selected_Point in Point_List:
|
||||
m_point = Selected_Point.Point
|
||||
m_x = m_point.x
|
||||
m_y = m_point.y
|
||||
m_z = m_point.z
|
||||
matriz.append(FreeCAD.Vector(m_x,m_y,m_z))
|
||||
|
||||
curve_User_Name, curve = plot_curve(matriz, m_close, m_face, part, name, str(m_dir))
|
||||
#curve_User_Name, curve = plot_polygon(matriz, part, name, str(m_dir))
|
||||
print_msg(str(curve_User_Name) + result_msg + " into :" + str(m_dir))
|
||||
else:
|
||||
printError_msg(error_msg)
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
def plot_4points_bezier():
|
||||
msg=1
|
||||
|
||||
|
@ -8084,6 +8470,7 @@ def plot_4points_bezier():
|
|||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
def get_all_from_bounding_box(ori_X,ori_Y,ori_Z,length_X,length_Y,length_Z,info=0,plot=0):
|
||||
""" Returns 8 points ,12 edges and 6 planes from the bounding box
|
||||
"""
|
||||
|
@ -12636,7 +13023,7 @@ def object_jointFaces():
|
|||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
|
||||
####################################################################################
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
|
@ -12757,10 +13144,13 @@ class WorkFeatureTab():
|
|||
self.eventsRot = RotationEvents(self.ui)
|
||||
# Create a Translation object and connect
|
||||
self.eventsTrans = TranslationEvents(self.ui)
|
||||
# Create a Parametric 2D Curve object and connect
|
||||
self.events2D = ParametricCurve2DEvents(self.ui)
|
||||
# Create a Parametric 3D Curve object and connect
|
||||
self.events3D = ParametricCurve3DEvents(self.ui)
|
||||
|
||||
|
||||
|
||||
## Create a Parametric 2D Curve object and connect
|
||||
#self.events2D = ParametricCurve2DEvents(self.ui)
|
||||
## Create a Parametric 3D Curve object and connect
|
||||
#self.events3D = ParametricCurve3DEvents(self.ui)
|
||||
|
||||
### Connect to functions
|
||||
self.connections_for_checkbox_toggled = {
|
||||
|
@ -12770,7 +13160,8 @@ class WorkFeatureTab():
|
|||
"checkBox_volumBB" : "volumBBox_toggled",
|
||||
}
|
||||
self.connections_for_button_clicked = {
|
||||
"button_WF_quit" : "quit_clicked",
|
||||
"button_WF_quit" : "quit_clicked",
|
||||
"button_curves_and_surfaces" : "launch_curvesAndSurfaces",
|
||||
}
|
||||
#self.PB_Quit.clicked.connect(self.on_PB_Quit_clicked) # quit
|
||||
|
||||
|
@ -12798,6 +13189,7 @@ class WorkFeatureTab():
|
|||
"button_point_to_sketch" : "point_toSketch",
|
||||
"button_points_load" : "point_toLoad",
|
||||
"button_points_save" : "point_toSave",
|
||||
"button_points_random" : "plot_points_random",
|
||||
|
||||
"button_object_axis" : "plot_centerObjectAxes",
|
||||
"button_twopoints_axis" : "plot_2PointsAxis",
|
||||
|
@ -12823,6 +13215,10 @@ class WorkFeatureTab():
|
|||
"button_object_3axes" : "plot_object3Axes",
|
||||
"button_line_to_sketch" : "line_toSketch",
|
||||
|
||||
"button_points_to_polygon" : "points_toPolygon",
|
||||
#"button_wire_on_plane" : "plot_wire_on_plane",
|
||||
"button_4points_bezier" : "plot_4points_bezier",
|
||||
|
||||
"button_linecenter_circle" : "plot_linecenterCircle",
|
||||
"button_linepoint_circle" : "plot_linepointCircle",
|
||||
"button_3points_circle" : "plot_3pointsCircle",
|
||||
|
@ -12845,10 +13241,7 @@ class WorkFeatureTab():
|
|||
"button_extension_plane" : "plot_extensionPlane",
|
||||
#"button_click_for_plane2" : "plot_clickForPlane2",
|
||||
"button_object_center_planes" : "plot_centerObjectPlanes",
|
||||
|
||||
#"button_wire_on_plane" : "plot_wire_on_plane",
|
||||
"button_4points_bezier" : "plot_4points_bezier",
|
||||
|
||||
|
||||
"button_boundingboxes" : "plot_boundingBoxes",
|
||||
"button_boundingbox" : "plot_boundingBox",
|
||||
"button_cylinder_create" : "plot_axisPointCylinder",
|
||||
|
@ -12897,6 +13290,8 @@ class WorkFeatureTab():
|
|||
self.connections_for_text_changed = {
|
||||
"tolerance_edit" : "setTolerance",
|
||||
"distance_point_on_line" : "distanceLinePoint",
|
||||
"distance_random_points" : "distanceRandomPoints",
|
||||
|
||||
|
||||
"extension_twopoints_axis" : "extensionTwoPointsAxis",
|
||||
"extension_face_normal" : "extensionFaceNormal",
|
||||
|
@ -12941,6 +13336,7 @@ class WorkFeatureTab():
|
|||
"spin_axis_cut" : "numberLineCut",
|
||||
"spin_wire_cut_point" : "numberPointCutWire",
|
||||
"spin_wire_cut_axis" : "numberAxisCutWire",
|
||||
"spin_random_points" : "numberRandomPoint",
|
||||
"spin_circle_cut" : "numberCircleCut",
|
||||
"spin_dist_plane" : "numberPlane",
|
||||
"spin_dist_line" : "numberLine",
|
||||
|
@ -13036,8 +13432,20 @@ class WorkFeatureTab():
|
|||
for i in range(2,self.m_tab.count()):
|
||||
if "Work Features" == str(_fromUtf8(self.m_tab.tabText(i))):
|
||||
self.m_tab.removeTab(int(i))
|
||||
break
|
||||
|
||||
break
|
||||
|
||||
def launch_curvesAndSurfaces(self):
|
||||
myObject = ParametricTab(ParCurveGui)
|
||||
|
||||
# Create a Regression 2D Curve object and connect
|
||||
self.reg_events2D = RegressionCurve2DEvents(self.ui)
|
||||
# Create a Parametric 2D Curve object and connect
|
||||
self.events2D = ParametricCurve2DEvents(self.ui)
|
||||
# Create a Parametric 3D Curve object and connect
|
||||
self.events3D = ParametricCurve3DEvents(self.ui)
|
||||
# Create a Surface object and connect
|
||||
self.surface = SurfaceEvents(self.ui)
|
||||
|
||||
def getMainWindow(self):
|
||||
""" Returns the main window
|
||||
"""
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2015.ui'
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2016.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:40 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
# Created: Fri Dec 30 15:42:17 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2015.ui'
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2016.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:50 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
# Created: Fri Dec 30 15:42:28 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
@ -26,7 +26,7 @@ except AttributeError:
|
|||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
Form.resize(1247, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
|
@ -47,7 +47,7 @@ class Ui_Form(object):
|
|||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(11)
|
||||
self.tableWidget.setColumnCount(12)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
|
@ -78,6 +78,8 @@ class Ui_Form(object):
|
|||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
|
@ -191,6 +193,8 @@ class Ui_Form(object):
|
|||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "Cartesian", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(11)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
270
WorkFeature/WF_ObjSurfaceEditGui_2016.py
Normal file
270
WorkFeature/WF_ObjSurfaceEditGui_2016.py
Normal file
|
@ -0,0 +1,270 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjSurfaceEditGui_2016.ui'
|
||||
#
|
||||
# Created: Fri Dec 30 15:42:38 2016
|
||||
# by: PySide UI code generator 4.11.3
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1247, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(14)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(12, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(13, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 11, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 12, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 10, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "3D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric3D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.verticalHeaderItem(2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "c (a, b) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "X (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "Y (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "Z (a,b,c,u,v)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "u min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "u max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "u step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "v min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(11)
|
||||
item.setText(_translate("Form", "v max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(12)
|
||||
item.setText(_translate("Form", "v step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(13)
|
||||
item.setText(_translate("Form", "comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Astroid", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "4", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "a*pow(cos(v),3)*pow(cos(u),3)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "b*pow(cos(v),3)*pow(sin(u),3)", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "c*pow(sin(v),3)", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0.0", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(0, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(0, 10)
|
||||
item.setText(_translate("Form", "-2.0", None))
|
||||
item = self.tableWidget.item(0, 11)
|
||||
item.setText(_translate("Form", "2.0", None))
|
||||
item = self.tableWidget.item(0, 12)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(1, 0)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 1)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 2)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 3)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 4)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 5)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 6)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 7)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 8)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
item = self.tableWidget.item(1, 9)
|
||||
item.setText(_translate("Form", " ", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
Loading…
Reference in New Issue
Block a user