From 3f4e87874fbda258af4e929b368ab8ae8f6658c5 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 3 Dec 2019 14:31:54 +0000 Subject: [PATCH] Extern : -aggionamento Optalog per tooling. --- Optalog/Include/cns.h | 10 ++++++ Optalog/Include/cns_tooling.h | 60 +++++++++++++++++++++++++++++++++ Optalog/Lib/x32/liblcns.def | 12 +++++++ Optalog/Lib/x32/liblcnsR32.lib | Bin 65894 -> 69102 bytes Optalog/Lib/x64/liblcns.def | 12 +++++++ Optalog/Lib/x64/liblcnsR64.exp | Bin 21176 -> 0 bytes Optalog/Lib/x64/liblcnsR64.lib | Bin 64666 -> 67812 bytes 7 files changed, 94 insertions(+) create mode 100644 Optalog/Include/cns_tooling.h delete mode 100644 Optalog/Lib/x64/liblcnsR64.exp diff --git a/Optalog/Include/cns.h b/Optalog/Include/cns.h index 583ef03..96a865f 100644 --- a/Optalog/Include/cns.h +++ b/Optalog/Include/cns.h @@ -571,6 +571,16 @@ extern "C" { double left_gap, double right_gap, double bottom_gap, double top_gap); + /** + * When a sheet is not a rectangle, left, right, bottom, top gaps will be applied on + * the sheet bounding box and border_gap will be applied on sheet geometry + */ + + CNS_EXPORT void CNS_API CNS_SetNonRectangularSheetGaps(CNS_SheetPtr sheet, + double left_gap, double right_gap, + double bottom_gap, double top_gap, + double irregular_border_gap); + /** * Add gaps around defects/holes. * diff --git a/Optalog/Include/cns_tooling.h b/Optalog/Include/cns_tooling.h new file mode 100644 index 0000000..d8f589c --- /dev/null +++ b/Optalog/Include/cns_tooling.h @@ -0,0 +1,60 @@ +#ifndef CNS_TOOLING_H_ +#define CNS_TOOLING_H_ + +#include "cns.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * Add a special tooling contour to the part + * Tooling contours on different parts can overlap each other but a tooling contour can not + * overlap the standard geometry of another part + * A tooling contour can also be nested outside of sheet boundaries + * This function can be called multiple times, all the tooling contours added will be unioned + */ + +CNS_EXPORT void CNS_API CNS_AddToolPathToPart(CNS_PartPtr part, + unsigned number_of_elements, + const CNS_Element * elements); +/** + * Add a hole in a tooling contour + */ + +CNS_EXPORT void CNS_API CNS_AddHoleInToolPath(CNS_PartPtr part, + unsigned number_of_elements, + const CNS_Element * elements); + +/** + * Automatically computes a tooling contour that offsets the part externals + * and holes of inflate_size distance + */ +CNS_EXPORT void CNS_API CNS_AddInflatedToolPathToPart(CNS_PartPtr part, double inflate_size); + +/** + * Given a tool trajectory and diameter, automatically computes and add to the part the corresponding + * tooling geometry + * This function can be called multiple times, all the tooling contours added will be unioned. + * Free shape contour can also be added with CNS_AddToolPathToPart + */ +CNS_EXPORT void CNS_API CNS_AddOpenToolPathToPart(CNS_PartPtr part, CNS_Point origin, + unsigned number_of_elements, + const CNS_Element * elements, + double tool_diameter); + +/** + * By default tool contours are allowed to be nested outside of the sheet + * This function lets you define if tools can go out of sheet or not. + */ + +CNS_EXPORT void CNS_API CNS_AllowToolsOutsideSheet(CNS_LaunchingOrderPtr order, int allowed); + +#ifdef __cplusplus +} +#endif + + + +#endif /* CNS_TOOLING_H_ */ diff --git a/Optalog/Lib/x32/liblcns.def b/Optalog/Lib/x32/liblcns.def index 6a28219..11c45f9 100644 --- a/Optalog/Lib/x32/liblcns.def +++ b/Optalog/Lib/x32/liblcns.def @@ -214,6 +214,12 @@ EXPORTS CNS_SetPriorityInterpenetration@16 @287 NONAME CNS_SetStrictPrioritiesOnParts = CNS_SetStrictPrioritiesOnParts@8 @288 NONAME CNS_SetStrictPrioritiesOnParts@8 @289 NONAME + CNS_AddToolPathToPart = CNS_AddToolPathToPart@12 @290 NONAME + CNS_AddToolPathToPart@12 @291 NONAME + CNS_AddInflatedToolPathToPart = CNS_AddInflatedToolPathToPart@12 @294 NONAME + CNS_AddInflatedToolPathToPart@12 @295 NONAME + CNS_AddHoleInToolPath = CNS_AddHoleInToolPath@12 @296 NONAME + CNS_AddHoleInToolPath@12 @297 NONAME CNS_SetSpecificSheetOrigin = CNS_SetSpecificSheetOrigin@8 @298 NONAME CNS_SetSpecificSheetOrigin@8 @299 NONAME CNS_SetSpecificSheetObjective = CNS_SetSpecificSheetObjective@8 @300 NONAME @@ -224,6 +230,8 @@ EXPORTS CNS_AddDefectFromNestedPart@36 @307 NONAME CNS_SetOriginPackingMode = CNS_SetOriginPackingMode@8 @312 NONAME CNS_SetOriginPackingMode@8 @313 NONAME + CNS_AddOpenToolPathToPart = CNS_AddOpenToolPathToPart@36 @314 NONAME + CNS_AddOpenToolPathToPart@36 @315 NONAME CNS_SetEvaluateIntermediateNestingsAsLast = CNS_SetEvaluateIntermediateNestingsAsLast@8 @316 NONAME CNS_SetEvaluateIntermediateNestingsAsLast@8 @317 NONAME CNS_SetPartialShearMode = CNS_SetPartialShearMode@8 @330 NONAME @@ -244,3 +252,7 @@ EXPORTS CNS_SetPartCommonCutMaxBlockSize@8 @361 NONAME CNS_AddOpenDefectPathToSheet = CNS_AddOpenDefectPathToSheet@36 @362 NONAME CNS_AddOpenDefectPathToSheet@36 @363 NONAME + CNS_AllowToolsOutsideSheet = CNS_AllowToolsOutsideSheet@8 @364 NONAME + CNS_AllowToolsOutsideSheet@8 @365 NONAME + CNS_SetNonRectangularSheetGaps=CNS_SetNonRectangularSheetGaps@44 @366 NONAME + CNS_SetNonRectangularSheetGaps@44 @367 NONAME diff --git a/Optalog/Lib/x32/liblcnsR32.lib b/Optalog/Lib/x32/liblcnsR32.lib index 786731f7d78a23a8773dacfa302caf34e61de6f1..6dbb321ba6a3cc6d1e78ab3132d0a12520beaa10 100644 GIT binary patch literal 69102 zcmeHwdz>9bmH(Lpd4nvnEX%SO5Ct*DkjEq-@|%PN2qcr31Xy>GFwEQ}7bo{-@7%$_ zx|n5mS=L2l5fOO_hzKa}5P69RD2OjW-tt!Qg{Zs~Mf`nFcXjuvs#DdsGnc=9zkEI? zJ-5!O^F8O(qpPc`t9RLVpf$L1zs=t_!Tz_`^cmBq_D-HWd8(a0+5FsV=H%(=-$!ju zG;Tc6Cr>5%)SX19y+L&8mWEEk6?EA+L&xF@`pSzbU2zl<)3pzzbX`9Y)A~zO`syU2 zgx2ES5x}NF+>SHjVtK(#fI+26?DhUl}iJYwaqI%}OF@Xne>J)5G=By>8irxRTOyA%2fuAtxF zkkTI}qMm`C&**ae4LajULnxm!K%ZW2=xJO*P?6FaTtQzRXJ{?1pf6ltXjfc85AB!I zgLk9;gMRmVN-wriKA>k#OX=Bdh?w3uHKo4*hv`xH%kBrMosl`v=_&JSIRe^=y$5+SV4R3->>k(hrY7y8^v> zdrH6G7jXoA?HEIk;|jVHwlRHkr-XXO9Y!hLjVt{BG-m;5(4IhpsOIuboD+d{dPN|gwDYAjAhH_Em*X0@zP~;<}TTP@w`P#7cO2lTt9kv zuracD>J(bGtpCvY^L-imcp;REEIsJZ{zI0{nYDBlE!)3;$+B5PLyMZj$E|2K4r&h9 zmNpj+wAxTtU$uH!gdfV;w-?(I&76qX`NNng$CvKgt5?V23<=ZZS+cTLbNw-CQlf9l zG)G?|lq9p(6@8mhHq2AvZV;%<+7b|b56ESjJpHwic5TRQ(lAUiJlVb}PQ4T22~Xre19XgM)k&%?4Gv;VLG35+=9T|Dz&`{y+QW*_3ww zc`w|~x)}$$NY3y~=jSUF43G;uG+V;woc*tqv#JDSS^t}mLl&AA)GAv=mF_mw`PsDS2kPqwP{8b7dJX4&)2UDIw2pil>JL#?&k zUcuv<$U5m>WEH+FlSQpMdRlwnn3ZF}({gx7iE~+=tOW5S+Rsl7gYALFiqYYLmU%8s zgk@ot2(krH5&z*aj4PidjXiT}%VFcvre>EeVl2{_PQe#X;}(i6`=nEv+gMR=)MQXl z5*EjlgGlpA!QpX^LmNo^NO-8A^FujpL@jSt_OO28(Z?XH^u zNJu?@?#n^7`ihlp&zBv|_#qcFdWEq4Gch_30F)(cI0<)W=jiG_oappeabUB^L zccfWbRjM}iJSN5!s)Dh(c$uv%*r}j(ST=G5PH~=kSciBGu6= z8IIRQp{Mq_ljT_*QRJeU91C*SK%kF^q)Wt0NJyv}^Q@S@0` z&&z`=AKQF4J+8rZ()*@aGmO64M8MBmm?R6>&MswQ8vOb!j4YJo^%*D&SM$JRVEBWh z1C2Hwkkh7R*ORE2u}9bAxD*m%9cU{U4>nifL11u6ySdsnLE~z`Y@J3N3wMsEMQ>ly~0|`ib)w80$RLiMdXYo z^#22`1=`2U{{$d z@a0?!TnW$Ppe`)}_5+SnH*-y{lxvgCcRE!W21U@-mEA-`ca_{IMX*#?I9Q%GEn4~1 zNGMQ3z_lf3`70s0OSTMaz=KYMguF$)RxRduYYCzCmFE!#XG%_$Kq)n&&$sx6B@8V(P? z@>naqmBMFBw47em_wr^n9!17|^J2d9$Pn1+j3ZNQ2VIVlHaiLC)K}FSJpbfX<#eZk z zll~qs+(c_>tWZkdW*H=z=rv52$$3z{*^i`(&1)=gx(&x=s(G9{kEc_vzt5?)2kOJM zp`yU^FgwAFN*aG7GJVtBDaSHlqqD!cpuQ$JqVl+UE-&~_zN}9~Tk3COBE8l~_mu%! ztyv+V99`3)7!eXZVOkDA<8~UZ?Hm6!)TJB<(Ns6v@WNEWvL-7RN}>YYgIs zi^hYkgW%WNUNBUNP;RGgdU?~4O?vyCi(PGan5&iF_QR5FM_ii|h7N>TCmv{*jILOL z+hMxdZ{)yMb9A+{pDZF2)nS)(l$QJ z<}s^!<_*GhYFkxQQ46yvHh&J7Yl!7rF)bJpPJAg7a~@{U65=-GPdJbi6I&r0tO>*p zY#rU2jWZ^C-Aeh#&JX|p*TTV?iXIWgoN#+^Ej8WM`?@U76* zR2JR^)ZUq**VY6rBMt7bR(RUxkxgrwqHd~8dDO!UJdj zy^Np;TM}UUowtUPuaKaG(n_&tVDKaQBdEeRk?=TP3{(kYJugLOtsuDI=?Vn%`hNTR zrPpS41TC?Roz=CWIywmR_%bqUgx4`-%S4zu$zbAAF6srUvn)nGk5}pg!)Vg#0*B8I zb7pn5cxFsCKcJrA<|^Y85MW%D<8wu`nnS$?x1511j>nF``z?j}NSwJ&gUeOHklW*#=}x zgjB9$NC-$;!o{WPa;%BS8H<7vUTH-oSsU&$+>fUBkaWbBj3lH@VVRf)y~Fl^@;)1n zsLhY^?O1-;RJpVui}Hxm|P73UOy zdT&V2q1op~qBh={e*yIBZA8a>1Lrb;7UL{}yFoMWAXZf3j<^SBC4g@F zF42CVncu_N2%tB9K-9Pw`9X)>hjS_(AX@YwQR^o-+W>SY&J)=06`T|B2cjKbgN^AC zF!aV2J#@mBaAqqU4+DDohrmGI=dQsOwjcZ*oOuJ9xKR&X4B8&&51b0x6nH0s&VQO{ z`)8mV0a*u{cs|ZV0B!RnqEkRe{uK6tw%)9VP6loNJED_8mp)Fk;}gjDbNB-4`x(wW z0Uh}g&H{K5Hr|XgO>QEZ47wF@T8sE>2|D46h{we^-{k9vC+Lx$9y$WV=cX(I-E%h4 z9MCPFL!3dUKz0IX{kcd7UHe(0X`rh=k1OaFoa1l+XdTWumpvkLA9E&nuP4dMe#)_}%+88(70_yW?oU13C*jw}CB}{~6^5A6`YCkAd#Jk7y}u zx%Udx^DANNB`9Cej=#Z~GNAR>qny^mhO5E926mkeJ3-H1hB|mT(Lv9_2hcs&p&Zts zPW=(F{1fWbCOvc}==;z)=PJbiJYa*Co&#CXP8;{oS)iTY(nIHh+KB1Ppo2eyvqwPR ze+jx@h94K99)Zq+PrJhB(_TZ}1;*ufz<K6W z*cWAW%PS~T#Cqa|$P2m^HthqSw)-v4wgHVF2Tb|_t)+jX6X@gg9Q}+&s6|a`&?vR3 zPAh2zEvF~xDOyFt^f*012hf4^&$OD>&~fwzD#b79SM*RY zL~o&uX%o7a?xX*p|D+S?-)U3YjP9gw(qr@^oHEnX^IiHL&7{3)bJ~I)paUv#rETc1=%45x=|l7nbS|Ao+tSrDEcrRLEF(^)AsZ?v;+Mu z{g!@5m(Z6`<-SH|(>b&w{T=N@e^2Y^dfJ)ZPW#aNX&0J6yV5&oKl(q^N3&=*dMCY$ zcBk9v4!VFYq+Xgqd(gY-zv*N;gFZuN(r4+9^d~xv{+G_8&(Z1hX<9@dr1kVwdY*nw zSJO2#oA#$u=#z9UT}R)b+h|XE4;@U0(Eap7T1tn~Vp@VGcLiNeU#2VRD*71xE8Rdh z(oJ+T-A&)7aXsUE`e`A3g8qjNr^9f})h}owy_a66Khs6@1v;Mog(lJa=mq)>Jwy-F z%k&DpO24OD>FabVeTsfUKc&gE7Y)+UbSYg%b7(H@OCO+T>BsamJwuPsqv$(7O7m#} z{efPi^Xc<6g{IOpnvNcI-2blw|Bu&!@#*RoMsx95>JG)^WOk;IAKkJ?eKR)nSz1OO zr+T=Yn5^s@RoX;Ho=IaCW6NwVCVz3zQYrVs8%AhOKFZEV`-rixz>H^u8WO&y!h31O zidF`sN_C`8H_X%L*=J8m<|Sb#OAD0hQ6x!0eUddt(AiRfJ+wBi*nWmZ@`-g6qb(KF zV8VlUVN40DTk+#uSz!Z@WkPx6St@<1t2VioYt}YY3%fOT_7H`LS(P(s!hBqmQO>`! z$zXf8X9ptrflvko%{H(IF3>_kGSsGir15mS2#qPLn&B4}x$wk2+Dpl1M=Q8>LmVWv-=5_?S8>cAm1wUUDX{FYR*{jg#flS3XnIbzYWJnPyG1DU2+S zziT1Q;-_a(&p6@J*x17|DNS2;j!<@Hnybg=yBg9hJD4(0&ZWywIg?6MkwQ=UTDA2i zbMm6K_8zo(yEzM1=#A`ro-r59Q}W>#ChkR@%8o)y?e;lE!O88vMmpb0CZyyWxPbCr z+m&w{gYUhf?7w{tDVdlZdBn-q(Q3vhnJDa%OL0cBNRq)ZD;9YK&2Ld|CPl1ixWa;! zFL%IRld3;IEN;;%uW_Y*$h4{MnDvb%waHs7dqRF6*@ctC+>78?(|M)ZdBRt z0yMWJkt@<&eFaC@@8q!^$a<~oNn}&FYxCY%SDAJc)YjXRLJ10Wa(3q0liaxJeAB*qzeeX zZKyAHnw$Z?)L^~fkYy8zLN>7J8b$AMtX$Z}u^N4@EK_;Xp$vi8p_m6|~-NTa3Xh=_1*Yx3_VbD6)RZka^5G zfByF3EN?(S-h4~;6y=te$O*FwNp;tcqEVF-8qp>OTCy|G5@ZLJq*;Aap5m&~wtbqA zC3$?lt)a$u7W1rvCW1U^N5z7In|oQl!fq)@I&p4{ecAWe4*o9Y-Lu+o=RLmlwJ9E$kV#cEC=WSL0;Q2HFO( zG?&K7uryw>d5w!Bz|0F#GOjMOprG%2iS?`25 zt(m6{+y5j}U~$%pd3cG|60=*HQ#v-&ts3gWtffJfa2jCMl~@a)YGxjn74Cbhwo#^? zS6jZ7*)_hcL0`y~I&=wJi?XgORVZvbf3`^5>5K4o>1DaY3&BOS%Vfivv!#=4QCQb$ zOX=Fu^$Bl**jK0ux;o`zu~bo{>xXLR3&(z@(23dkY>F&gEMMj6&QLpLWt$YT1!W5l zS#7>sG34U1mD5_=v^d#9vy$j(&la66*<$J0N|tNQP6Q;&3wJU}TK=6c&$ePU)j=y5 ze!$IIs*(d0&Z|2{TC7Uz8HGSHQD?=)D3OcTalX@sqna2Md70`~J4_70mYX^L<$^d|SC~re6}wFJ^h15ZFu=xX9~$KE=+heItb> zoCR>j0!P9#!yAEQ%j3FaVX=di=qb2mxjlcK{F=jAU+*G|CH128(!N}DcQTj9bc#0R z&mHptL{7s?)dp76eft7}c4&=GXMtT&=14fEc`NQxgU7VHTujV5i}FP=xIDW@1UJ8z zxhofzj)0UiVe$lQK?>rFqIpbh(erbLIzR)_fI87Lh98)M_c? zF5QQ8xpH1`@@0KTL!RyjA+n(FDG8o(=buYgzN+tNFVEn4iziZRGk{eGY^Lvb!bh*2 zZw&Br7hDfIunEBNDIn!*6MF+(6@umE^R@^$nLWOuL2e|lLf~yDu()DBfCDNx9-QFi z%lsj=M!+w*M2XoDAU7NMiaa6RAR`vB$d>T56dM7&{>uqYMACP(5LP-Uo9Xwx1wYh9 zDG~uS-cAI~D^JJ^le0O&QQ~lw-1-IvtJuTa7#y)=gyU>xC>2p`Qa3Jmo~cs)EAXL` z%F{gq{0$G56E53%V!}Nr+x%c>%U3IvWNRZtobQ>-qvYt&!WZywn=Dh@o~;cMmN`K= z)vQ8evRNXc$!wYMB#Mm_L6(YKjMJTZ!wwWoHLu(^q2!iqKYw8FgsUeY<`0UBZ4q5K zLdG+<(5`N#aI7wo_OzovFdHze!poBV&N<;I{c@hJL--pn9K)0RzLcgd+oa)IEVgPW zENfGS501>1gbr*rZ}{pHh8nHn6hI9$Ydkt!(F(M@1=r85?%;5hs6r*W%w`We0+u4Z z6Afrq7r@ zwRiI5$x|m-|I)K-CQO(@icz>=RUk`56;EF5hM85Gij)H^yrG+mZU#% z{s#UyCHrBneYDN&N%f(D_P}maGS+tZ<6h8DOu~3v`)KlQMy}T+<17lC@d3O{j??>S z!fiN011C^y#y@Fm+o|2@ZQE>uWLC-lwgg>&{I7hSvqsLy!aCuo&2gv_ z+A4Z8^kv)#aa2{hl~3$%3v4y8i?ecXI%7uG$=X)z4J&XkQHNIWBa~xE<$BgTMYm*6 zSn?mBWc#a#hu9b4K-)jdYk2Q;9r?XL{m&?JH~gNS-OikPup5w1RM7bW$PIQ?kEidg zd%QdF{yl)n(;zlZ^}eJxQ0FHCbBd^K>C~*VtI`3te|AvHftvn4U{5W<=3O;5UUlE6 z2k_qs{Ev#5+dHGiifWGhLvh>fdk-KU8$#uwqXTUJ>>%2KT0IGvBLer$>D77z^?NTM zw@T3!_pA42fzsyMc3ji~JnPoH23{F|MmAh_%AJS1Ys&GJ5LB%JGqM4fV*w8U>WT$s zKcBOc&PJ`?>ShG$;Y?VtvQsO%5sg64$9MY`o!FsP3p+aHtul7EU*545N;oRl&*?Mu zJJ7pe#U7$J=DWPuhiyCTbW-L1_wJ>mz8k3T4x)C&-$42A3gmwlk?-E9CU(DBts-{A z&)z_L<9`2LBEtGccBep{pBDdeirHr;SJY-2*zZfG4q? zhE}D@I(DQEw&U1}>vkkMsDqKGiH`|%^%aM)$34)mP6qP7mZ2-d z+-`b*jA()Sn;SM-^}Bs<#QTqwp?Aak$TRFd4!*sK-7R=K5@V}%?~fuYZg;iC{f|}a zv{zro?0cltKT(Q~se3!v&d>7LPYdAh1nj23@5+;VUn^Rqm~Ro2MxscdQ7#4CNYO+tfiM0(X`fz<;7c8@kfk z17lg9#W_&gk-lCPozSQngWkw<^+6@r-5B4+o*>Z8=ChRk+iA9^8*p!nM4jj2v-wdE zS#jI8rM%`%57azf{o(Z@2V3jtDz~`U6C$q(D40rzSJl(l6EY6$&r!vDbDd3LRrY^o zUNBtbZ&{#4epXKd+THraFR~C8QIcs~}d0v|yxVKIK(#9^Dax=G`E%z=qM}ZHQ6yE9Y zv)XW#V;if@_!>qDIyO^`5kJZ{@pg+ts~;`W*ras ztvj;74?|TO@{OO)K7?I>|4)St#o-ukmsj~N6PqphM-34#E8AXG?{#9k$Ufv^W(R#Z zp!U!5(v3YyB>R5(G()_spM0sJI6=gQaXjw;H86hQ^1MKJn!mf`Aapmj7ix&gwm{qI zaxY`!v$xuq_Gu|&_BJ*~;(h0)-{QB;Y-InIUA^T*%Jx!$oge!#W^ZF{^)d~y8(s#+ zVmkw`CNRyZHFni;JT9+EvDuX&56ySahVK9`;@yD2Gw1Bs>bvUQQ65?sybJ6t;N7|( z7I^abAIB-@X9p1ttS`O`ct-><{acD1=nhaLp8l0Yl^@ozLAvVcwgJp8lxbjPh4*H? zO`sNs{5Xy|KRbwRU={0~K-*45RBkENd)L5|39lXhwS$U*pySmB+&3e=`Sw1ZKh&%2 zVQj{Heot}lGKWivGpt-^?TTDpqOlc{1yN*vm)l0G9_iR<;c`FH;#{sVBL~_JuLXZO zhOA8O+O~8M^T3^k=QM8fv4ew#%D9228lKbmMg({4JyooJpD&TUv(4NpR@vuBIe$Ki z+y$=#{Rrjwhbvqjy+S}Adq>1RUC?E!&LV-aA)MzsT+f+-RQYv{{EeVT)finIOzN=k8*6) zVW%MK*h@Et%kzWTvn7{q;Vn+$8*BMSdJujSB!sKnq^h^!2sS_QNo?mRMAz-=*pc3g z*YYFSeqmQekL@DhF=vL}rCkJpHq1y9T(mBD7h7L=zl&E?=CPM)z)$Y0cyEvu)dIH* z9>+$R9|$A+&9`z*ioG|wUkq7kz;;(s-dD!vPj->m=8#XffGgt#Mq2zd%9NLHaj2*b z;TX_?hmrXO-r<)Zrt1S@($9f$ewL%gY7@_<=&0Se=gtVUAU@RL5gR#pz^W7S$~8Ln z_Wz@u+0cc$9a|x~*tQ~Y)T>kM&d>5%5L+SoVn-JE9h+S?p^TU8n2Q?u)9$HvC${bMJ4Fo*}6_4J3l*!cjT#t=QMTHF3e~~X5BuS;o|r|`>0^M zHdUXSiH#FZ388jlE-c_Jzkz<1z|GgmoHGc=>UXSf`CK`^a@>S%QF%R!S#Y*yfqzh` z4OzLS$9lJOIcA3RsX%@0v^sV4J0 zb+>vcN9OGxiXr<>SH_N&FSqOD2^nK{`8f*L;i{32J*V=Dx`x@6{wuIX!84EZ1g`i@ zhU;qe_(q-z4%RWdP^z)f`Ih1?DLl-_A%_rNHLPsBO26x}a&yC^!qkMtvp1NebruUyY#<-R12?K@r>JvLImTA&x-Tq&J^ zscu7HHKiB$*K}rs(gdp3f!MwCO4SN&8loy{?B01*5LKCYs~q*%jQX`Ia&RJ|I(A^+ zDxW}iT^w6+y>iSW=xbec@9RKL=jQzEps$Jab^lh1?l<|W-p9rew+MXavqp}e-F+7M zS{T=NxU048Rts7EP?H^CCk|sP@2{7l`|jK3bbue|U3vHClNNrm$HV@#lnqwh_ee{7 zssy_Wo(D#dyt>j5BP#ox$0Q1va~S)+#Ms(KvmBp4vo*%}$7UP*Mf|(hv&Y`mS*RiU z#az98M`rR*m6*$y5019YOk2I#7;AK6chFBoaJ%xJK)`3-t#-J?PCxfE)_N4!YdQf) zhk0mzk=pPb^jU%3AH08Rrf50oN8sd#-E5={xJyNz1on<0`%YJ{$AKvGo^|#-d%EYj z(D*{I9fc0!9eBRy9n_2-Mt-wbhE|H0v)}njcvn|IV^2Z#PAup~=|}4PB~BR>QQ&X> z*`?jxI{&2@au>Xg&7z&)U}v9Na~-z*FR$&fC%umcFnw3MiOO$D$Tn7N2_37ivEAG} z0@P8*?rjYBV5ddNk3Ejr-$);NNCdYF9!H+*c9zJ2&r*)n^H?AD_73ostqqm$V6k&W z76}`Qk6h{>+_c+P^&TyDLgWWKx5KX#U5&_M)e`+9p>JkHmUM1M7a|hdtNnoJk?_=&t0dxnA$XAb;O95pVkn&P?E7V-pQg)B_-*9 z8P@IaD*GJUQM6Y%eitGTD`y@%XLr}`%_+pjOFVn(A$H+x)!1|HpoeLFgm>&^9H`eE z-J|2!-6-F{+!?>)@f8<6{j{*%Jvsh&&|3xOtavZv6)Iv^`l|@){t9ZdRc{~X_*VTc z9h-@s6GH7qsRs6j@T&dZE^c@zUcJAHJmK+vFstnrxLxo#wz@k}_LSClppQPLHrTEo z>pfuFRlK}T$MzS$w-nuXzcPMgPG`>`zB+MMz04#1*L&jFzT?%=1MQk;z$Zv_{j1$$ zZsD;z^e*N2-H1S>%^jb$IqiGnWA{B$>;5H%?7u8kz1$;S&(E;650}5GUN49tccZKW zcWa*KI4rAen%Df@ce_(@es<8uMOxb7CD`4#gU5D}Toj9Y@~L{q`Res8GWYR?GIYg# z+n%vSpZmJx&dT4s7q10ojb2#@s_uVaM8UgFc@I+weivGN>`Q`dMQ%ZVZB08n#nh?g N-5tSA385<9{$D5lhk*b9 delta 9881 zcmdU!iGR*lzQ?~05fMQ|2$9MnmKsZBQlb~5rqxz0(NW6Opwo+9Mq?&5rY%pn9oL@7 zN%B}LDu}fqu?7*emWqfah%F(Okkt~zc0cEw-}#;2L+>AOy}Y0EbAD&}?&my@vZXFJ zXSl>RuN@X1{`;<-yRd>jKK8DiyM+euKcn1u&{mO+rWll=#keC7 zK#+$Ptic=se+HRw17|-r<~&N4JoY2v9KfcWgKh#l9h`v&&NIo`rbGe^It!|{OCGhy zLLgz5B+;FSvpmY60xh_3UXl+JbDqtVJSQSf(E`a0Jl`PrKNmqFh(`-9!4;g#VUmlx zi8zsWTQ=CByv|#gk1B~Ac(yI+1NIF=0%>b5LYR5-<6G>VM5$9oq(TOew z8_|N3eg;3F1;0WgK`L5sJk%f^EyxKrz}Os+0RaWm(1KK0Meq$;@B(`Z>{WOGhX)(v zp#^u|Ho)R{z!qrD**ZkB3jzuf(SnC3BvrkTE#S%?$yEr-xeN<)u5^)Hg_0b5L0k9+ zoKZmfGvJ(u0sMUq?7b=3_Zcb}I0cOa^U#9AWXUxMCV)`az;$oQZZ9GM%)c8{1_|s` z8HWdOK2mb73LAo7`Wis9UqEu00klX4%f=a$pas|CB}JadZ?HbZAO$U09cpj{EtvZw z2mYVeR+1D!B*;e#@()NZc1Qk$ly?pGqXnhalCp1zIMoXzPwOK)z!M0>sfI9|$FK(H ziMQk)guZ9T$NdSC1$fDc@six?LnOdvx4>!i3zne;rEUh%Xu-~41GsM|Sl82FJ6cfo zLQ;;5;Z#7VzWk$Nk>vSzD3P4UlI(CI0VZdI;xGgL3>M9jEOtd2y0XZa!D%UO7egKY zsAX%&0(#VDZ_cb2H@ALTK##FC*gvnfVoRetr~SFtuv)&I#F4K*I=|J`=~56HqAmrG z2ws4&p0gn=;wBP`-2r1(pdSobg@X|cSc~%r1Z{wKK*&a98VKEl;tI-AiNZ!;fGOFlr52a0q*K$3DrAP!#>( zfmm$jc93WWcm|rDMIYE+MbsW!ONhP)UJxt^?_R_bMFS59#z9awJjcaAD2$C>h`y�K(3}d$&b! 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 diff --git a/Optalog/Lib/x64/liblcns.def b/Optalog/Lib/x64/liblcns.def index 37bef0c..ef93256 100644 --- a/Optalog/Lib/x64/liblcns.def +++ b/Optalog/Lib/x64/liblcns.def @@ -214,6 +214,12 @@ EXPORTS CNS_SetPriorityInterpenetration@16 @287 NONAME CNS_SetStrictPrioritiesOnParts = CNS_SetStrictPrioritiesOnParts@8 @288 NONAME CNS_SetStrictPrioritiesOnParts@8 @289 NONAME + CNS_AddToolPathToPart = CNS_AddToolPathToPart@12 @290 NONAME + CNS_AddToolPathToPart@12 @291 NONAME + CNS_AddInflatedToolPathToPart = CNS_AddInflatedToolPathToPart@12 @294 NONAME + CNS_AddInflatedToolPathToPart@12 @295 NONAME + CNS_AddHoleInToolPath = CNS_AddHoleInToolPath@12 @296 NONAME + CNS_AddHoleInToolPath@12 @297 NONAME CNS_SetSpecificSheetOrigin = CNS_SetSpecificSheetOrigin@8 @298 NONAME CNS_SetSpecificSheetOrigin@8 @299 NONAME CNS_SetSpecificSheetObjective = CNS_SetSpecificSheetObjective@8 @300 NONAME @@ -224,6 +230,8 @@ EXPORTS CNS_AddDefectFromNestedPart@36 @307 NONAME CNS_SetOriginPackingMode = CNS_SetOriginPackingMode@8 @312 NONAME CNS_SetOriginPackingMode@8 @313 NONAME + CNS_AddOpenToolPathToPart = CNS_AddOpenToolPathToPart@36 @314 NONAME + CNS_AddOpenToolPathToPart@36 @315 NONAME CNS_SetEvaluateIntermediateNestingsAsLast = CNS_SetEvaluateIntermediateNestingsAsLast@8 @316 NONAME CNS_SetEvaluateIntermediateNestingsAsLast@8 @317 NONAME CNS_SetPartialShearMode = CNS_SetPartialShearMode@8 @330 NONAME @@ -244,3 +252,7 @@ EXPORTS CNS_SetPartCommonCutMaxBlockSize@8 @361 NONAME CNS_AddOpenDefectPathToSheet = CNS_AddOpenDefectPathToSheet@36 @362 NONAME CNS_AddOpenDefectPathToSheet@36 @363 NONAME + CNS_AllowToolsOutsideSheet = CNS_AllowToolsOutsideSheet@8 @364 NONAME + CNS_AllowToolsOutsideSheet@8 @365 NONAME + CNS_SetNonRectangularSheetGaps=CNS_SetNonRectangularSheetGaps@44 @366 NONAME + CNS_SetNonRectangularSheetGaps@44 @367 NONAME diff --git a/Optalog/Lib/x64/liblcnsR64.exp b/Optalog/Lib/x64/liblcnsR64.exp deleted file mode 100644 index 34c3411feec49791e7ecbbe76512c563208a3b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21176 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 b>w_77e|1$WI|Z~;pJO95elu3W^gaDwOPu$& delta 9776 zcmdU!iC@-LzQ@0hke0bn5HKJHN@}jqm|XahmS*a8y47TlS!wRb zSAEnljnp(zP~1QfF>_bM1$PBS+!6P+oXpwojB^|=Nt)7W%87=8#$zrr1 z8*3#K(Sqg0iWSL35(u>dGtps}kjbRbv!+!|=DDLb0YTkz^rSP!R1f z87=rF#9Nmio;x1g2acAP^NT5u;;v91o0 z1c$E!>3tlIpam`z;-wH_t+b}5D*VSPoTCf+s zlx#-}j&)a*o*@#qYY$vCv2GQ;61v>>yt zVjb(n${oLHNA^2P|yDgCfZki3w3~;!H7M#VrPU6QoEE3#UrMQ`Z=mZ-tDKz(>OoUkllMo-1>hXZl-LmIC*gT$xzZ1&+N5o|J{ZmpEF7DBQfBmcl-|o?jTMVhi z4-bjWKGk-2U_=Xf?b{#mPe0@TFo@R=gX=_8{Y#?uUlV;goan1*xQoEY-$D`4YX-6u zyz&DK1nT~Xy9hLz3)h1N^KjjRLm5Qf7GT~YWGiToBonuIgKX#likA~5ufSfw+aU+3 znoCq~B~jHp6hs(j7}^TZb`7!+L>HhAfskL|IRV1tH;{XrsAU<7=1HQ!Q$$@a;IadY zZxO}a#x($9?-12lhxMROI+6rT!CCtN~d?0=c)jn&9P&?z5DAlN~aP()MvErcaf@W2@ltw6>&q8gYxb25a4VCyl~ zbSx}|RBy`A9)h;Q?`uaBHOAZwjO{}lCSS)ziSY&#kyuEOa9Hgr?;#ujj*KLFc@zTt z8=|-H`+)DDAs9Rzmm`SAVd;~IK3Y#y1>AtP1E5hBtkirbQUCMU15|9n`pu|qTW}z( zaSn6e-+&hM--sfKv2GYESw{5Qa`^uS%+V(U#p))cf!{)ZM!f-xPe6J|xqSh&hXrme zAsVz4!FCb;1Dy{*L(pMAEC8N8h-?JA3*p8cum*&xw+r!*gBZ!h{@Y-!?Xcis1S_a} z1a3G2|5sqscOcD}b1**$LSRk7!dh!_je|Bb5oloO6a?8+1k+KBgSa`W;63|2v;_x7 zAVXliUTLr*c&!-1fR3{uDCmD0)&U2uA|9?G!>gfco>=wvX7e30Tg2S^{b*omBSA<7#MR+xydj65@)^8npkdyni;I{p0 zrS_}Ag`thOM!z%M0vy6T<}BKsmIfV zK;-!Gjd%vf+Lf~#i|x3{_-?u{6~}w?gC7=)p2VWB@V?EgAHh?nm}RLcYE`q8j(QdE zSgHEvrL;GFmCn4V3D29pp=TP)t(#!$r#!^@ZKC*GUVSs3yi@H{JGGPP>y@hd#-`f6 zgycz6gQY^Buvsp;w@p=6h{LIa*vrv8plcvEom`vaCI;*EjI*V!nq$@{ zm{o_TPHbdHcd5~MjD9Rf^P(T(=t)L)VeZ0d>Y$dG^d5UAH-x!^+=qxsCnhN&Z%?vT zzsFVYVr_jce7`Esm{^-LImC!jGFyp}fD_(vW<8MFHxQEeYa`-lWu7|8JEg7JKwI%?4Fgn(8~8*7@FPJ*MA3ZU1!FG#d*^GfXV7-f`OuGnJ!fs#Chm zOwgyWFy4Ecl<{(AK5P2jhUy6=CcIRSKd8LdN-_lJeV?qCrKYPBnx(tC!Z<2h9k3|< zWj&MK`SBNFrI(}ljUP;mi5Qhu6fxRSj@RM39PAD;j+?KJi=Sn3L+q=hnq};kx=d|V z4_gIbtAQ_vaPfG5Uk0sLbDqGQKshIv7tc0MV??9ew&onaQ1;GI1>{dyRt;I+^O(E|Kefnfx8*OWM zy*NG3FGi$^TR?a`UikYz#&F6{MtFR67s^XALZseXGTzeL$^K3YRDbUUZ<~JDP|m%% zz-Ym`e0{jkx(IHQ=Qa{X!?^_yMfipUdg_^tDxJjYnQ0P>b>Dv52kXi*))f2H=A)TW z{882uW)ppKVU{`hUYjPtV@2)4`Q1eg%rfnYf<-PRTms|S$piit!LKeh@;dcU>Ylmy z-pH>ZE|^vju{z-1)nmC=wv|#}13B5oFG5Op9k0Rp*)ja)64xSEg|5l%md0|7z3X%i zwq9x^;gqGyGkHsGP%Kkj&6e4UsqeNK%WTDTCq{SStcVb9vE15AZ#{Ck+1lKZH<#Oe zbgq7|!ni~DR9dGoEE6QG6FoSbtL9im_2xZu%;rdDY3RZnD|htFFm95oYD{9TEn+$s zGIPyx6hS-p@s;<_9lO%b)%N&xrPV_R`M^~+J}^%PVtwfF2=~ql<$%0c6H$7_>v?vC z`_3xLvzq8T>%Ugp6Wt|x`D!b%HqI0IM&f$|yfXrPLc0iFo^Qm_C8_orTavVIMz68H zK^>JkiTBHVp0Fm8*E9{}Mg_J!=mhf?m{s?lUmyY|K9bMo_}%T!H0j5IYi*9}+I@Dd zl?^c>i-m}hFl<-Uy$+B5+2)?}^eX+?F42PZSoePl7J;2&UXA1%>#RQ7Pf5R6KeWzo(5Bu*n7^pvVPjZ=q)bRz>jO zE&jKiu7FV+jm5MxeH*RzCC;S~yvbe)?hx{BvLU34-T6%}@#iZ+M0IY%rJMf%@oh%x zP&v5SitY}TwpbAf(d{Lrldy1$2~+v%&`-8@TW$Djb1vHICyxx2hTF`EqTuG2seGTY zt*g#7(T$G*a(2vi`_#Z&Mw(VU`et#9!dTu>802<{E}2gj+LEcQy`a!#ZTr@0xWm+I z5d?C7@pgEEV~WCkp9OmS4lvhXWRX#Vk?XSh#bVi5z`Z|xjAJI+;DUE#=r_RN7>t*^ z9?lJS+Hrk%4B2UAfv!^j+dGX}SoaOtW%{(ncXt_$5ld1WahrC>r*v-jd=&S+XphrR z%DcPm!$sFC?;cyP5Z%%oBK{|_XIC%}ZTKLE6q`(Qr+?pKmwDAXA;5GVSX_sz?QLLu zt1d;UTkpL_0Cyym?ltO}3-2HMY|x=fO9e%hehF~gA40ftpA}0*m6ZJ{jOTLU{wKJi z+;4)8uTA?+duF}m?QloIbh&|P=?MavQ{Js8e=#>bjblV1mIpt$28 z5pq8g8peYT8L`YWc+(-fM#o0tVG|p|?08p5f$|R<6Pnw)-4W|UgtQDj5z_dgjC-^Q zN#OT59Jy^+`?;UsEh{COpE!PS|>>YvAD%#yrBqa+RpbnQ~Ro&_Ip@|0=f$ zs>R$=?h;d$EV)>G9?iz$DDHF894AZ%Gswgc6NUoLs#ljs@AbQ~ja?E?x$NRxz6GcJ zM3shl=Cp|n=M34MdHQ}+H#=ju)K7o~XRKY7h;sRpXYF$R{`v8o$#HiaB|(vb@DN{J zkH`O`p1yrYo;MPjPZypFV>-W=;=e2GrKvBp(-r1ilY*~axPQ;03uaGupuSk?>b8}y zF~3wIf7s6`6faezPa(z8S7Q_eIqK zhnM~{oHt(f&puuKN8WYCj`Kav-MfCFfx0A}DC$yEc;gHFm*e9j9-8!>$LJ%*{{V_3_Ot*1