From 6e70ad5e976ef5e15081ab30f1513a5cc06376c1 Mon Sep 17 00:00:00 2001 From: Jeremy Wright Date: Mon, 3 Aug 2015 12:06:59 -0400 Subject: [PATCH] Fixed the Center call for Shape objects on rotateAboutCenter, and changed CenterOfMass usage so that it won't fail silently. --- .coverage | Bin 7643 -> 7935 bytes cadquery/CQ.py | 3 ++- cadquery/freecad_impl/shapes.py | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.coverage b/.coverage index b9068da9e624b33f1ffb445df2dab0ddb461085c..2d312f01cced111aa20603ac09caba734bfe487a 100644 GIT binary patch delta 2419 zcmZwJXOPy_6~}S!bIvUf78YEWvPz;MW<(;1g4jTaF}fVS#1UCo%CewK69h&Pu{{DR z5EZ1W14s~J$Feadu>}!-V*TOf#9^qSI zpHNpRQtB!7m13nt`L%Moa)#1MIbUh7T%cU2{7$)8F{NDTs#GXdN?&E5a-}k&pj@k5 zr;Jg?Dz_`sl^M#t%0tS-$|K5S%1ULG@|yCxvPM~}tW(x2?rGX}a z69a7n=Lgya+6OKOTo||{aA}}(;IcrMKzX2Rpd!#CFgP$Ia8+PvV0hr_LSS@YOyJhQ zU4e;#NrB0Mse##nIe~eB2Lkg03jz-Y9tu1fSQc0wSP^(5@Mhqx!1}=3fenEV0{a68 z0*3;*h>wIwjHF0DQYUg$q$qMqq*y5#r^qFd&XJyxUXjX3??_do zPoz51FESu9C^9-SCNeg1TVz~hc4Tg3eq=%9!N{YLg^?#BPep1Xe~COB`D^6wk>?|e zBd#{%*%8?p`6jX_vN!T=1) zM8ia*MB_wh;)KMn5-k&FCR!)XN}Q9pI8m19km#7`l<1teEK#25mZ&Hsx+i)hdL}9p zRf%DV;fbpg*Cr+`{=&GIzQ(<0C5dCthw zDqr2@w^J7tpIx&n&Z$#qF4P*+LO4TcDYO#K63))}Iyd91{SWvm6HGwpB>Y~uRJcqi z7rF`+8E%!CZ&gBHVSq457$RIH3>AidkKPTLcm?5>TJ&n4TI|LPcL)=ONy21d`eFMr z`u>aFybQhh!UEw>!o$KN!sEiiA4~X*@HgQ(;d$W&;U!^_@UrlVutZoYEEARsD}oY*#$qap0cwhKH*eGlgHVYpKTZE5=PlT-*vfF>`>=*x! z+PxXI-w6kVgTfJtQwljn6jeeka7tdOqa3Lmr5yb~BsWkRDvgxJN~zLB`HAvV;PnloyLh(jdc+Q@;7wkoQ z$^K!B>}6YGui8>uX3K4*t+Lhjnys-nZLO`d4fd|RXYbo4+iV}&N4CYb+NZY7w%ZQd zXux=*(t2B!^|fm2XZ>xU4YDh3 zunn=RY?uwVt8Ijhvg_>zyU}j8F*e>N*qt`f?zYJ`#irSGn_>6ZefF3wv?uH-Tb$J| zt1bOc=Lfd2w)1e)xAxuPs)8Nl2uGuAV`(*9DN*p9hW<=@!0>bS-+(s7;RM#oL3Iz~Ij zI&O8`?ilA7@0j5DgX0dzosPR46CG0=Gu_k|i`&&a(`bcrn`#QBt#W6!{+^K9A5dGN YL&ip@%#6-LmrRQvQc*3{BSxI|ZyG4WK>z>% delta 2152 zcmZY9d2klQ8Gvy%@4LqrdQhvPs2%D-P=p|+NJuawL?|o|R|+(oRU5-uYc&NF`-w>- zN=3O8Md&$gk#YtB5frf~H-P{}ltNKEPF27l0Tn~P`7~{3`tR=S&dxjg{4R8RD{sZA zjO4Zqwr8+2gTomd$-oFAsNjVlB!uQdYvF3)8ljDlCA1aV2|a|{gkHi(VU#dh_>u5q zp37-k) zg_g=?%H_%xn&dhqOSxWYr`)J?P;OH4m2OIb(o^}q(q9><3|B@dqm(hqSY?9pfHGA{ zDl?TQlqZ$h$||Ksc|lpDtW(x2FDV<9SClXLgeBk)d@sZ<%rbKJXd*IdvZLTJ-MDDPY+MA=QdAIPcKjO^!4=f4DghD#(2hh z#(O4uDm~Sn$2>DUk0(8|JaawsJWqR`@jT~Q=vn0Xjpuis#h&LqOFVz^EcGn+tn_U1 z?Dp*O)Oz-L>OA{BZ+nh-{_Z*IIp#U;dDm0#`NY%UIqNy+Y4lw1Gz*x31TGCpS_Q5Q zTow3Epmm@_AUn`8&?%4;$PIK26B z{eh{08G)IBS%KMsIf1!>rvmc>n*&<{uLs@;4A>gj7T6xx5!e;j6WAB13mgm_3cML; z3|vUPH-S%(NRXMJd4jJc_SQctx31)lx~j*(}fwruY@OrCxzL<9AU07FRk8!Gq+%JS?icvBYRh$x(wrO{7Xri}$THkD?lhRemOEY|Hn&IwB zktcmK;wT5k9WqhcvmcsW8=6uK2D5x$7!)LR>kT#KRz25#D#HrTp3rznz%Zy zjoagnxHImKdtze%Rj7 z!H{j}Xt>#sWB8t-v*8v)7elTg&ya8EW+*UpHxwF*48?}thQ0<20}X==LsEAcN)5ve zBMc+we7Dubq1-UR{C6OkHCtQlFg5e8%*n_~C6wP(QL3Mw>4f_KPd`JXtfHdBzX7zg BY)}9I diff --git a/cadquery/CQ.py b/cadquery/CQ.py index 20d190c..5ac4ceb 100644 --- a/cadquery/CQ.py +++ b/cadquery/CQ.py @@ -685,7 +685,8 @@ class CQ(object): endVec = Vector(axisEndPoint) def _rot(obj): - startPt = obj.Center() + # TODO: compute the weighted average instead of using the first solid + startPt = obj.Solids()[0].Center() endPt = startPt + endVec return obj.rotate(startPt, endPt, angleDegrees) diff --git a/cadquery/freecad_impl/shapes.py b/cadquery/freecad_impl/shapes.py index e0f2ecf..e710aac 100644 --- a/cadquery/freecad_impl/shapes.py +++ b/cadquery/freecad_impl/shapes.py @@ -185,10 +185,10 @@ class Shape(object): return BoundBox(self.wrapped.BoundBox) def Center(self): - try: - return Vector(self.wrapped.CenterOfMass) - except: - pass + # try: + return Vector(self.wrapped.CenterOfMass) + # except: + # pass def Closed(self): return self.wrapped.Closed