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>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1039</width>
|
<width>1247</width>
|
||||||
<height>460</height>
|
<height>460</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -127,6 +127,11 @@
|
||||||
<string>t step</string>
|
<string>t step</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Cartesian</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Comments</string>
|
<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 -*-
|
# -*- 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
|
# Created: Fri Dec 30 15:42:17 2016
|
||||||
# by: PySide UI code generator 4.11.2
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# 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 -*-
|
# -*- 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
|
# Created: Fri Dec 30 15:42:28 2016
|
||||||
# by: PySide UI code generator 4.11.2
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ except AttributeError:
|
||||||
class Ui_Form(object):
|
class Ui_Form(object):
|
||||||
def setupUi(self, Form):
|
def setupUi(self, Form):
|
||||||
Form.setObjectName(_fromUtf8("Form"))
|
Form.setObjectName(_fromUtf8("Form"))
|
||||||
Form.resize(1039, 460)
|
Form.resize(1247, 460)
|
||||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
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.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||||
self.tableWidget = QtGui.QTableWidget(Form)
|
self.tableWidget = QtGui.QTableWidget(Form)
|
||||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||||
self.tableWidget.setColumnCount(11)
|
self.tableWidget.setColumnCount(12)
|
||||||
self.tableWidget.setRowCount(3)
|
self.tableWidget.setRowCount(3)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||||
|
@ -78,6 +78,8 @@ class Ui_Form(object):
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
|
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||||
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setItem(0, 0, item)
|
self.tableWidget.setItem(0, 0, item)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setItem(0, 1, item)
|
self.tableWidget.setItem(0, 1, item)
|
||||||
|
@ -191,6 +193,8 @@ class Ui_Form(object):
|
||||||
item = self.tableWidget.horizontalHeaderItem(9)
|
item = self.tableWidget.horizontalHeaderItem(9)
|
||||||
item.setText(_translate("Form", "t step", None))
|
item.setText(_translate("Form", "t step", None))
|
||||||
item = self.tableWidget.horizontalHeaderItem(10)
|
item = self.tableWidget.horizontalHeaderItem(10)
|
||||||
|
item.setText(_translate("Form", "Cartesian", None))
|
||||||
|
item = self.tableWidget.horizontalHeaderItem(11)
|
||||||
item.setText(_translate("Form", "Comments", None))
|
item.setText(_translate("Form", "Comments", None))
|
||||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||||
self.tableWidget.setSortingEnabled(False)
|
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
|
# First two lines to be able to launch with python
|
||||||
import sys
|
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
|
import WFGui_2015 as WFGui
|
||||||
from WF_ObjRot_2015 import *
|
from WF_ObjRot_2015 import *
|
||||||
from WF_Utils_2015 import *
|
from WF_Utils_2015 import *
|
||||||
from WF_ObjParCurve_2015 import *
|
|
||||||
|
|
||||||
global myRelease
|
global myRelease
|
||||||
myRelease = "2016_09_10"
|
myRelease = "2016_12_30"
|
||||||
|
|
||||||
|
|
||||||
import os.path
|
|
||||||
import time
|
import time
|
||||||
import math
|
import math
|
||||||
import itertools
|
import itertools
|
||||||
|
@ -129,12 +135,14 @@ m_numberLinePart = 2
|
||||||
m_numberLineCut = 2
|
m_numberLineCut = 2
|
||||||
m_numberPointCutWire = 2
|
m_numberPointCutWire = 2
|
||||||
m_numberAxisCutWire = 2
|
m_numberAxisCutWire = 2
|
||||||
|
m_numberRandomPoint = 1
|
||||||
m_numberCircleCut = 2
|
m_numberCircleCut = 2
|
||||||
m_numberPlane = 1
|
m_numberPlane = 1
|
||||||
m_numberLine = 1
|
m_numberLine = 1
|
||||||
m_numberLine2 = 1
|
m_numberLine2 = 1
|
||||||
m_numberPoint = 1
|
m_numberPoint = 1
|
||||||
m_distanceLinePoint = 0.0
|
m_distanceLinePoint = 0.0
|
||||||
|
m_distanceRandomPoints = 10.0
|
||||||
m_extensionTwoPointsAxis = 0.0
|
m_extensionTwoPointsAxis = 0.0
|
||||||
m_extensionLinePointAxis = 0.0
|
m_extensionLinePointAxis = 0.0
|
||||||
m_extensionLine = 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
|
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"):
|
def plot_circle(Radius, Position, Direction, part="Part::Feature", name="Circle", grp="WorkCircles"):
|
||||||
if not(App.ActiveDocument.getObject( grp )):
|
if not(App.ActiveDocument.getObject( grp )):
|
||||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", 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).
|
Be aware that if the line is not extended enough the intersection Point is still created (as if).
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
error_msg = """Unable to create (Point,Line) Intersection(s) :
|
error_msg = """Unable to create (Point,Line) Intersection(s) :
|
||||||
First
|
First
|
||||||
|
@ -3272,6 +3308,8 @@ def distanceLinePoint(value):
|
||||||
#plot_alongLinePoint()
|
#plot_alongLinePoint()
|
||||||
except ValueError:
|
except ValueError:
|
||||||
printError_msg("Distance must be valid number !")
|
printError_msg("Distance must be valid number !")
|
||||||
|
|
||||||
|
|
||||||
def plot_alongLinePoint():
|
def plot_alongLinePoint():
|
||||||
""" Plot a point at a certain distance along the line respecting to the choosen
|
""" Plot a point at a certain distance along the line respecting to the choosen
|
||||||
reference starting point.
|
reference starting point.
|
||||||
|
@ -3348,6 +3386,88 @@ def plot_alongLinePoint():
|
||||||
|
|
||||||
|
|
||||||
def plot_2LinesPoint():
|
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.
|
""" Plot one or two Point(s) at minimum distance of two Lines.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=0
|
||||||
|
@ -3531,6 +3651,112 @@ def plot_distPoint():
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
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):
|
def numberPointCutWire(value):
|
||||||
""" Respond to the change in number of cut value from the spin box.
|
""" Respond to the change in number of cut value from the spin box.
|
||||||
|
@ -4221,6 +4447,101 @@ def point_toSave2():
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
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():
|
def plot_centerObjectAxes():
|
||||||
""" Create 3 Axes XY, and Z at center point of all selected objects.
|
""" 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))
|
# points.append(p.projectToPlane(p1,p4))
|
||||||
# sel.Object.Points = points
|
# 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():
|
def plot_4points_bezier():
|
||||||
msg=1
|
msg=1
|
||||||
|
|
||||||
|
@ -8084,6 +8470,7 @@ def plot_4points_bezier():
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
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):
|
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
|
""" Returns 8 points ,12 edges and 6 planes from the bounding box
|
||||||
"""
|
"""
|
||||||
|
@ -12757,10 +13144,13 @@ class WorkFeatureTab():
|
||||||
self.eventsRot = RotationEvents(self.ui)
|
self.eventsRot = RotationEvents(self.ui)
|
||||||
# Create a Translation object and connect
|
# Create a Translation object and connect
|
||||||
self.eventsTrans = TranslationEvents(self.ui)
|
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
|
### Connect to functions
|
||||||
self.connections_for_checkbox_toggled = {
|
self.connections_for_checkbox_toggled = {
|
||||||
|
@ -12771,6 +13161,7 @@ class WorkFeatureTab():
|
||||||
}
|
}
|
||||||
self.connections_for_button_clicked = {
|
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
|
#self.PB_Quit.clicked.connect(self.on_PB_Quit_clicked) # quit
|
||||||
|
|
||||||
|
@ -12798,6 +13189,7 @@ class WorkFeatureTab():
|
||||||
"button_point_to_sketch" : "point_toSketch",
|
"button_point_to_sketch" : "point_toSketch",
|
||||||
"button_points_load" : "point_toLoad",
|
"button_points_load" : "point_toLoad",
|
||||||
"button_points_save" : "point_toSave",
|
"button_points_save" : "point_toSave",
|
||||||
|
"button_points_random" : "plot_points_random",
|
||||||
|
|
||||||
"button_object_axis" : "plot_centerObjectAxes",
|
"button_object_axis" : "plot_centerObjectAxes",
|
||||||
"button_twopoints_axis" : "plot_2PointsAxis",
|
"button_twopoints_axis" : "plot_2PointsAxis",
|
||||||
|
@ -12823,6 +13215,10 @@ class WorkFeatureTab():
|
||||||
"button_object_3axes" : "plot_object3Axes",
|
"button_object_3axes" : "plot_object3Axes",
|
||||||
"button_line_to_sketch" : "line_toSketch",
|
"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_linecenter_circle" : "plot_linecenterCircle",
|
||||||
"button_linepoint_circle" : "plot_linepointCircle",
|
"button_linepoint_circle" : "plot_linepointCircle",
|
||||||
"button_3points_circle" : "plot_3pointsCircle",
|
"button_3points_circle" : "plot_3pointsCircle",
|
||||||
|
@ -12846,9 +13242,6 @@ class WorkFeatureTab():
|
||||||
#"button_click_for_plane2" : "plot_clickForPlane2",
|
#"button_click_for_plane2" : "plot_clickForPlane2",
|
||||||
"button_object_center_planes" : "plot_centerObjectPlanes",
|
"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_boundingboxes" : "plot_boundingBoxes",
|
||||||
"button_boundingbox" : "plot_boundingBox",
|
"button_boundingbox" : "plot_boundingBox",
|
||||||
"button_cylinder_create" : "plot_axisPointCylinder",
|
"button_cylinder_create" : "plot_axisPointCylinder",
|
||||||
|
@ -12897,6 +13290,8 @@ class WorkFeatureTab():
|
||||||
self.connections_for_text_changed = {
|
self.connections_for_text_changed = {
|
||||||
"tolerance_edit" : "setTolerance",
|
"tolerance_edit" : "setTolerance",
|
||||||
"distance_point_on_line" : "distanceLinePoint",
|
"distance_point_on_line" : "distanceLinePoint",
|
||||||
|
"distance_random_points" : "distanceRandomPoints",
|
||||||
|
|
||||||
|
|
||||||
"extension_twopoints_axis" : "extensionTwoPointsAxis",
|
"extension_twopoints_axis" : "extensionTwoPointsAxis",
|
||||||
"extension_face_normal" : "extensionFaceNormal",
|
"extension_face_normal" : "extensionFaceNormal",
|
||||||
|
@ -12941,6 +13336,7 @@ class WorkFeatureTab():
|
||||||
"spin_axis_cut" : "numberLineCut",
|
"spin_axis_cut" : "numberLineCut",
|
||||||
"spin_wire_cut_point" : "numberPointCutWire",
|
"spin_wire_cut_point" : "numberPointCutWire",
|
||||||
"spin_wire_cut_axis" : "numberAxisCutWire",
|
"spin_wire_cut_axis" : "numberAxisCutWire",
|
||||||
|
"spin_random_points" : "numberRandomPoint",
|
||||||
"spin_circle_cut" : "numberCircleCut",
|
"spin_circle_cut" : "numberCircleCut",
|
||||||
"spin_dist_plane" : "numberPlane",
|
"spin_dist_plane" : "numberPlane",
|
||||||
"spin_dist_line" : "numberLine",
|
"spin_dist_line" : "numberLine",
|
||||||
|
@ -13038,6 +13434,18 @@ class WorkFeatureTab():
|
||||||
self.m_tab.removeTab(int(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):
|
def getMainWindow(self):
|
||||||
""" Returns the main window
|
""" Returns the main window
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- 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
|
# Created: Fri Dec 30 15:42:17 2016
|
||||||
# by: PySide UI code generator 4.11.2
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- 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
|
# Created: Fri Dec 30 15:42:28 2016
|
||||||
# by: PySide UI code generator 4.11.2
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ except AttributeError:
|
||||||
class Ui_Form(object):
|
class Ui_Form(object):
|
||||||
def setupUi(self, Form):
|
def setupUi(self, Form):
|
||||||
Form.setObjectName(_fromUtf8("Form"))
|
Form.setObjectName(_fromUtf8("Form"))
|
||||||
Form.resize(1039, 460)
|
Form.resize(1247, 460)
|
||||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
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.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||||
self.tableWidget = QtGui.QTableWidget(Form)
|
self.tableWidget = QtGui.QTableWidget(Form)
|
||||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||||
self.tableWidget.setColumnCount(11)
|
self.tableWidget.setColumnCount(12)
|
||||||
self.tableWidget.setRowCount(3)
|
self.tableWidget.setRowCount(3)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||||
|
@ -78,6 +78,8 @@ class Ui_Form(object):
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
|
self.tableWidget.setHorizontalHeaderItem(11, item)
|
||||||
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setItem(0, 0, item)
|
self.tableWidget.setItem(0, 0, item)
|
||||||
item = QtGui.QTableWidgetItem()
|
item = QtGui.QTableWidgetItem()
|
||||||
self.tableWidget.setItem(0, 1, item)
|
self.tableWidget.setItem(0, 1, item)
|
||||||
|
@ -191,6 +193,8 @@ class Ui_Form(object):
|
||||||
item = self.tableWidget.horizontalHeaderItem(9)
|
item = self.tableWidget.horizontalHeaderItem(9)
|
||||||
item.setText(_translate("Form", "t step", None))
|
item.setText(_translate("Form", "t step", None))
|
||||||
item = self.tableWidget.horizontalHeaderItem(10)
|
item = self.tableWidget.horizontalHeaderItem(10)
|
||||||
|
item.setText(_translate("Form", "Cartesian", None))
|
||||||
|
item = self.tableWidget.horizontalHeaderItem(11)
|
||||||
item.setText(_translate("Form", "Comments", None))
|
item.setText(_translate("Form", "Comments", None))
|
||||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||||
self.tableWidget.setSortingEnabled(False)
|
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