From 8f083ee0de7d955e7d2e83520e3fc5ac22de9879 Mon Sep 17 00:00:00 2001 From: lucasjerome Date: Thu, 25 Mar 2021 11:27:06 +0100 Subject: [PATCH] Add Vertical and horizontal constraint, documentation and traduction --- .../SketchPlugin_ConstraintHorizontal.cpp | 24 ++++++++++ .../SketchPlugin_ConstraintHorizontal.h | 6 +++ .../SketchPlugin_ConstraintVertical.cpp | 22 +++++++++ .../SketchPlugin_ConstraintVertical.h | 6 +++ src/SketchPlugin/SketchPlugin_Polyline.cpp | 43 +++++++++++------- src/SketchPlugin/SketchPlugin_Polyline.h | 2 +- src/SketchPlugin/SketchPlugin_msg_fr.ts | 15 +++++- src/SketchPlugin/doc/SketchPlugin.rst | 1 + .../doc/images/Polyline_panel.png | Bin 0 -> 43177 bytes src/SketchPlugin/doc/images/Polyline_res.png | Bin 0 -> 6714 bytes src/SketchPlugin/doc/images/polyline.png | Bin 0 -> 15330 bytes src/SketchPlugin/doc/polylineFeature.rst | 33 ++++++++++++++ src/SketchPlugin/icons/polyline.png | Bin 569 -> 15330 bytes src/SketchPlugin/plugin-Sketch.xml | 4 +- 14 files changed, 135 insertions(+), 21 deletions(-) create mode 100644 src/SketchPlugin/doc/images/Polyline_panel.png create mode 100644 src/SketchPlugin/doc/images/Polyline_res.png create mode 100644 src/SketchPlugin/doc/images/polyline.png create mode 100644 src/SketchPlugin/doc/polylineFeature.rst diff --git a/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.cpp b/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.cpp index f256187a8..ef8fedd5c 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -29,6 +30,8 @@ #include //#include +#include + #include SketchPlugin_ConstraintHorizontal::SketchPlugin_ConstraintHorizontal() @@ -54,3 +57,24 @@ AISObjectPtr SketchPlugin_ConstraintHorizontal::getAISObject(AISObjectPtr thePre return anAIS; } +void SketchPlugin_ConstraintHorizontal::createHorizontalFeature(SketchPlugin_Sketch* theSketch, + const std::shared_ptr& theLine) +{ + FeaturePtr aFeature; + if (theSketch) { + aFeature = theSketch->addFeature(SketchPlugin_ConstraintHorizontal::ID()); + } else { + std::shared_ptr aDoc = theSketch->document(); + aFeature = aDoc->addFeature(SketchPlugin_ConstraintHorizontal::ID()); + } + + std::shared_ptr aData = aFeature->data(); + + std::shared_ptr aRef = std::dynamic_pointer_cast< + ModelAPI_AttributeRefAttr>(aData->attribute(SketchPlugin_Constraint::ENTITY_A())); + aRef->setObject(theLine); + + // we need to flush created signal in order to coincidence is processed by solver + Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_CREATED)); +} + diff --git a/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.h b/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.h index 591c8423a..8ef096159 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.h +++ b/src/SketchPlugin/SketchPlugin_ConstraintHorizontal.h @@ -56,6 +56,12 @@ class SketchPlugin_ConstraintHorizontal : public SketchPlugin_ConstraintBase /// Returns the AIS preview SKETCHPLUGIN_EXPORT virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious); + /// Creates a horizontal constraint on line + /// \param theSketch a sketch feature + /// \param theLine the line + static void createHorizontalFeature(SketchPlugin_Sketch* theSketch, + const std::shared_ptr& theLine); + /// \brief Use plugin manager for features creation SketchPlugin_ConstraintHorizontal(); }; diff --git a/src/SketchPlugin/SketchPlugin_ConstraintVertical.cpp b/src/SketchPlugin/SketchPlugin_ConstraintVertical.cpp index 917cfbfb5..cf317f703 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintVertical.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintVertical.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -29,6 +30,7 @@ #include #include +#include SketchPlugin_ConstraintVertical::SketchPlugin_ConstraintVertical() { @@ -53,4 +55,24 @@ AISObjectPtr SketchPlugin_ConstraintVertical::getAISObject(AISObjectPtr thePrevi return anAIS; } +void SketchPlugin_ConstraintVertical::createVerticalFeature(SketchPlugin_Sketch* theSketch, + const std::shared_ptr& theLine) +{ + FeaturePtr aFeature; + if (theSketch) { + aFeature = theSketch->addFeature(SketchPlugin_ConstraintVertical::ID()); + } else { + std::shared_ptr aDoc = theSketch->document(); + aFeature = aDoc->addFeature(SketchPlugin_ConstraintVertical::ID()); + } + + std::shared_ptr aData = aFeature->data(); + + std::shared_ptr aRef = std::dynamic_pointer_cast< + ModelAPI_AttributeRefAttr>(aData->attribute(SketchPlugin_Constraint::ENTITY_A())); + aRef->setObject(theLine); + + // we need to flush created signal in order to coincidence is processed by solver + Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_CREATED)); +} diff --git a/src/SketchPlugin/SketchPlugin_ConstraintVertical.h b/src/SketchPlugin/SketchPlugin_ConstraintVertical.h index dc533a96f..cb5bab81b 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintVertical.h +++ b/src/SketchPlugin/SketchPlugin_ConstraintVertical.h @@ -56,6 +56,12 @@ class SketchPlugin_ConstraintVertical : public SketchPlugin_ConstraintBase /// Returns the AIS preview SKETCHPLUGIN_EXPORT virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious); + /// Creates a vertical constraint on line + /// \param theSketch a sketch feature + /// \param theLine the line + static void createVerticalFeature(SketchPlugin_Sketch* theSketch, + const std::shared_ptr& theLine); + /// \brief Use plugin manager for features creation SketchPlugin_ConstraintVertical(); }; diff --git a/src/SketchPlugin/SketchPlugin_Polyline.cpp b/src/SketchPlugin/SketchPlugin_Polyline.cpp index c73fd7a79..a8fd95c38 100644 --- a/src/SketchPlugin/SketchPlugin_Polyline.cpp +++ b/src/SketchPlugin/SketchPlugin_Polyline.cpp @@ -23,6 +23,8 @@ #include "SketchPlugin_Sketch.h" #include "SketchPlugin_ConstraintCoincidence.h" +#include "SketchPlugin_ConstraintVertical.h" +#include "SketchPlugin_ConstraintHorizontal.h" #include #include @@ -38,7 +40,7 @@ #include #include -#include +#include SketchPlugin_Polyline::SketchPlugin_Polyline() : SketchPlugin_SketchEntity() @@ -61,14 +63,14 @@ void SketchPlugin_Polyline::execute() createLineFeature(); } -void SketchPlugin_Polyline::createLineFeature() +void SketchPlugin_Polyline::createLineFeature() { AttributePoint2DArrayPtr aPointsArray = std::dynamic_pointer_cast(attribute(POINTS_ID())); getAISObject(AISObjectPtr()); - if (aPointsArray->isInitialized()) + if (aPointsArray->isInitialized() && aPointsArray->size() > 1) { FeaturePtr aLastline; FeaturePtr aFirstline; @@ -79,13 +81,15 @@ void SketchPlugin_Polyline::createLineFeature() if (anIndex ==1) { aFirstline = aLine; } - std::shared_ptr aStartA = std::dynamic_pointer_cast( - aLine->attribute(SketchPlugin_Line::START_ID())); + std::shared_ptr aStartA = + std::dynamic_pointer_cast( + aLine->attribute(SketchPlugin_Line::START_ID())); aStartA->setValue(aPointsArray->pnt(anIndex-1)); - std::shared_ptr aEndA = std::dynamic_pointer_cast( - aLine->attribute(SketchPlugin_Line::END_ID())); + std::shared_ptr aEndA = + std::dynamic_pointer_cast( + aLine->attribute(SketchPlugin_Line::END_ID())); aEndA->setValue(aPointsArray->pnt(anIndex)); @@ -96,31 +100,36 @@ void SketchPlugin_Polyline::createLineFeature() // Initialize new line with first point equal to end of previous std::shared_ptr aSFData = aLastline->data(); std::shared_ptr aSPoint = - std::dynamic_pointer_cast( - aSFData->attribute(SketchPlugin_Line::END_ID())); + std::dynamic_pointer_cast( + aSFData->attribute(SketchPlugin_Line::END_ID())); std::shared_ptr aNFData = aLine->data(); std::shared_ptr aNPoint = - std::dynamic_pointer_cast( - aNFData->attribute(SketchPlugin_Line::START_ID())); + std::dynamic_pointer_cast( + aNFData->attribute(SketchPlugin_Line::START_ID())); aNPoint->setValue(aSPoint->x(), aSPoint->y()); SketchPlugin_ConstraintCoincidence::createCoincidenceFeature(sketch(), aSPoint, aNPoint); } aLine->execute(); + + if (fabs(aPointsArray->pnt(anIndex-1)->x() - aPointsArray->pnt(anIndex)->x()) < 1.0) { + SketchPlugin_ConstraintVertical::createVerticalFeature(sketch(),aLine->firstResult()); + } else if (fabs(aPointsArray->pnt(anIndex-1)->y() - aPointsArray->pnt(anIndex)->y()) < 1.0) { + SketchPlugin_ConstraintHorizontal::createHorizontalFeature(sketch(),aLine->firstResult()); + } + aLastline = aLine; } // Initialize new line with first point equal to end of previous std::shared_ptr aSFData = aLastline->data(); - std::shared_ptr aSPoint = - std::dynamic_pointer_cast( + std::shared_ptr aSPoint = std::dynamic_pointer_cast( aSFData->attribute(SketchPlugin_Line::END_ID())); std::shared_ptr aNFData = aFirstline->data(); - std::shared_ptr aNPoint = - std::dynamic_pointer_cast( - aNFData->attribute(SketchPlugin_Line::START_ID())); + std::shared_ptr aNPoint = std::dynamic_pointer_cast( + aNFData->attribute(SketchPlugin_Line::START_ID())); double aDistance = aSPoint->pnt()->distance(aNPoint->pnt()); - if (aDistance < 1) { + if (aDistance < 2) { aNPoint->setValue(aSPoint->x(), aSPoint->y()); SketchPlugin_ConstraintCoincidence::createCoincidenceFeature(sketch(), aSPoint, aNPoint); } diff --git a/src/SketchPlugin/SketchPlugin_Polyline.h b/src/SketchPlugin/SketchPlugin_Polyline.h index 7decbf441..2237ae8ee 100644 --- a/src/SketchPlugin/SketchPlugin_Polyline.h +++ b/src/SketchPlugin/SketchPlugin_Polyline.h @@ -36,7 +36,7 @@ class GeomAPI_Pnt2d; * \brief Feature for creation of polyline in PartSet. */ class SketchPlugin_Polyline : public SketchPlugin_SketchEntity, - public GeomAPI_IPresentable + public GeomAPI_IPresentable { public: /// Arc feature kind diff --git a/src/SketchPlugin/SketchPlugin_msg_fr.ts b/src/SketchPlugin/SketchPlugin_msg_fr.ts index 74e559170..ca6fd6d68 100644 --- a/src/SketchPlugin/SketchPlugin_msg_fr.ts +++ b/src/SketchPlugin/SketchPlugin_msg_fr.ts @@ -2980,7 +2980,20 @@ Élément de construction - + + SketchPolyline + + Polyline + Polyligne + + + + SketchPolyline:Auxiliary + + Auxiliary + Auxiliaire + + SketchMacroArc diff --git a/src/SketchPlugin/doc/SketchPlugin.rst b/src/SketchPlugin/doc/SketchPlugin.rst index d1c47eb22..4196b8a0e 100644 --- a/src/SketchPlugin/doc/SketchPlugin.rst +++ b/src/SketchPlugin/doc/SketchPlugin.rst @@ -87,6 +87,7 @@ The plug-in includes the following features for creation of 2D objects: pointFeature.rst lineFeature.rst + polylineFeature.rst rectangleFeature.rst circleFeature.rst arcFeature.rst diff --git a/src/SketchPlugin/doc/images/Polyline_panel.png b/src/SketchPlugin/doc/images/Polyline_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..954a65990a8061d3baffec1303efff7b50698578 GIT binary patch literal 43177 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 literal 0 HcmV?d00001 diff --git a/src/SketchPlugin/doc/images/Polyline_res.png b/src/SketchPlugin/doc/images/Polyline_res.png new file mode 100644 index 0000000000000000000000000000000000000000..139aeef7b7f2cf38deadf6a1c8337cb37d4f1e4f GIT binary patch literal 6714 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≶OqqeR@|SA%V(7U}cyUA7Qg$2{%MCn}9*LJ&0#Dkpwfe zj5gxRC)>1UB8BDAD3$M@WAQ01iv{2r(^etLptk`4BxJgU=>fSrP!Dw)m6pGA>2C1DMj6{W$5 zx~CvcB!~xJzi`S4t_XF1g=OMwV%(HNK|q&q0^NZdD~P#w-P4;-zQ4O zcb*jH#qIQJYyrXb>JGohhLXqNfMPW-y6{%>WlGGp*Nav82Hi*cr*H%Gdq4wB7@wyPXr(?+!INX@Jp zQzs2g)NShU6YlP^xS+ViY46#btsV1RxdCz`;v%kQZ*64c#Xb%wGzB??zM10ARPrXA zHJ!Ha+TL%Fu$!O=4e4f^iEAUU%#nQg!zB{XZ4UR+b0Y9`k4V0sFO+AR zjj|YIg(UrHv$SRBqbKSgoK0ykWR@Z?WS3Z?*humY;U16S&W9=w(i)P07cA0fDtUYS zo5gTPFt`s1q1~k#p>!eo#uQC7^UYL+usi>=JbrJV8+~buVny2UNY;s@717vlHSqiX z_}i8ctgs;Q_h;{eIpiTo%HOx3CA5mZ?FV%I)+CsxfqQ?98sM3nUStO&1Tp{Z-LF+W zXCS2{I1WJne=3$UaHkb40wMgBZ+(DK4w!44{wT>nr{DAh%R(>}(k=G?X!7fB@^343 zu;l{g`PwgtJxv6Jb$)XNSdfA}@K1v!ZMO<`%wSBX%bJUUt-0lIyXLR53bn$(B}1BB zf3*`>>92X`C-?qFXU6uw{PBa6_3F*` R;GaLx-rXj81v>WO{|640@2&s< literal 0 HcmV?d00001 diff --git a/src/SketchPlugin/doc/images/polyline.png b/src/SketchPlugin/doc/images/polyline.png new file mode 100644 index 0000000000000000000000000000000000000000..7f55aaf2919eda66d3a8738f89f932b7da854d11 GIT binary patch literal 15330 zcmeI3Yitx%6vw9!K&m{HHa-)U1r!3a^VnB+vb#`r3vJ4lT52c(k=dEscI@uVGBa(r zg&>FtC=k%_K?F51!B>!2Aco)@YcR$rz6s)k!UsSjf{{mJ#5=p&-RbT2rU@9o+)Z|8 z&i&tW&dl%Lb9TPWll65A#+BYvN>S9fn(Al+JWjN}w~U6rlmEOf!o%29^-=@s-&^03 zc{6sUDJpPDX>2l^VhaUHOS(i^ivw3WnS!$^DmW*d5~Vg^I^v*3QA5rPZ@=$!D00ZT z#2aH{sR(FQs=IZtxVx@V>TZ()vU5(jG?*4(fFv+QM>?5M4Iv$JX5tF)+!|(_j?5IZ zE#$1U5;~e<^^S<91Bch;qb1hoclZM?&g=Jk{IeZA%Xt~r&A3^bcMBd?@bHe@#~Ch# zXF*+V78;`SbLpTJa<-agN?@4I&Q4dS+okC(3>OFl7?x*vo`y4Mqf0f#G_4v_vqAdf zM1djcO3G9;)nUaI<665JayqR<`A_b?lBs+m)yT1f6q&S`VmKGe6mycLyiclKPh>7l zmKcx#NuZhr^y7;9rCK#pGg`GFQs(6$6T>x$#qzm}UT-p4G__$?bwC6;q(wcA#;z1# z8i1j->k_EyfVVQW*xj2-b764?M6#42uN|b7A>1q_>z3IH*%b=Hdle!&5KT>Q)U-r6 zyUXhP5jrA~%&v0Gh>4P-T3lxa8Put;;)Qr1Dw-h7vph$$ZkqQta-6_=1lBi;g(s{n zNOmR?Bc{npb62q#UcuwH$FR*rW55cMMN=GB6#HCT99a^YH9aYsVI?WH04Alj1ewC1 zZDxL72@x%!>F}~Z*d1hw4cojjdrhcO4O3JlP!kQq0hgl4LR|KG{XphvAJ6f$#|ON$ z$U>8q<7~j~_s2afpMe;Q+1&?)j%rf7RWC4fwzbHb1j83Di}P@@D8^wokpW9{oFC8u z*iC53&r9(NInML$ivC2lV1p7Z(iPbG#Dr~*buThZ=9j%Z@KtzeKPOkvp60llu8>4P z!$BX*@_yFsfuyo1ii8=Is#-DNe(kdDW4N0$y=^gAHE^_FNGO>el@fIWSQQv@_LpG3 zspWf?<&&voL6ofS7M8360dkNTFj}~*yl2i$8N8gsLy(Pcb00cKXDd)~<&_PUnKg6} zLu)oWMIBVOz#THY+Rw%v=!hl=GS>e=LirDt!Vo)dY$1kMS2ws2_8#?rE<|A`ORb{X z0^~5$zlr+?hPQUv6&+Yz{S`a78iUqflmIIk?kX`;L0pg-G*-x*o!?|tWTHJYKfqca zhO>Tiu67x9U5akIPwe=*r)^UG#G@C#*i%`1>)1_O_k1<}!6`e-%9oc36{b1q zzFXD0z84)=$DIA`{Ml*atIEdQJ|;P;a{27Wo~j3XUaPJRZG30$rkOFV>z&nC-aC2W zrwdi5FO?s9;_Id(E#{WH%D0>@`Mqz{zQEkZW4)*L&zZO4=!oV8C0k;?Wk2_<@7g<2 zTO2($Z{+(I+ZKHgJ@EX8`cvb-+pw$m{x2PMqhCpx%(3J00ebGGed6cJJO0{E_m%IT@XwwP zgx;Oo{hzjNUD91X<$7Ph^^#9sakoDGOlZxK$=|#_vg(nZ%~I8`ZyrCAJa}>6q7l6v zY;2*_^+)q-wQG7;uX%O;)6e~Qdf~;{XWl5g5;@V-ef7m1`_;?4kMCMPVp-(fL#w9E zns9KZclU&AcP*K4+cEEFtA6|C$l7)1x1X#%d2a3OZI?&>eJ}OccjCjNUVX=AF;Y literal 0 HcmV?d00001 diff --git a/src/SketchPlugin/doc/polylineFeature.rst b/src/SketchPlugin/doc/polylineFeature.rst new file mode 100644 index 000000000..475ec88fd --- /dev/null +++ b/src/SketchPlugin/doc/polylineFeature.rst @@ -0,0 +1,33 @@ +.. _SketchPolyline: +.. |polyline.icon| image:: images/polyline.png + +Polyline +======== + +Polyline feature creates polyline in the current Sketch. + +To add a new Polyline to the Sketch: + +#. select in the Main Menu *Sketch - > Polyline* item or +#. click |polyline.icon| **Polyline** button in Sketch toolbar: + +The following property panel appears: + +.. figure:: images/Polyline_panel.png + :align: center + + Polyline + +Pick points in the view to create a Line. + +Start and end points coordinates are displayed in the property panel. + +Result +"""""" + +Created line appears in the view. + +.. figure:: images/Polyline_res.png + :align: center + + Polyline created diff --git a/src/SketchPlugin/icons/polyline.png b/src/SketchPlugin/icons/polyline.png index 8ed9356e716da9301db9463787b8aed48660b3ca..7f55aaf2919eda66d3a8738f89f932b7da854d11 100644 GIT binary patch literal 15330 zcmeI3Yitx%6vw9!K&m{HHa-)U1r!3a^VnB+vb#`r3vJ4lT52c(k=dEscI@uVGBa(r zg&>FtC=k%_K?F51!B>!2Aco)@YcR$rz6s)k!UsSjf{{mJ#5=p&-RbT2rU@9o+)Z|8 z&i&tW&dl%Lb9TPWll65A#+BYvN>S9fn(Al+JWjN}w~U6rlmEOf!o%29^-=@s-&^03 zc{6sUDJpPDX>2l^VhaUHOS(i^ivw3WnS!$^DmW*d5~Vg^I^v*3QA5rPZ@=$!D00ZT z#2aH{sR(FQs=IZtxVx@V>TZ()vU5(jG?*4(fFv+QM>?5M4Iv$JX5tF)+!|(_j?5IZ zE#$1U5;~e<^^S<91Bch;qb1hoclZM?&g=Jk{IeZA%Xt~r&A3^bcMBd?@bHe@#~Ch# zXF*+V78;`SbLpTJa<-agN?@4I&Q4dS+okC(3>OFl7?x*vo`y4Mqf0f#G_4v_vqAdf zM1djcO3G9;)nUaI<665JayqR<`A_b?lBs+m)yT1f6q&S`VmKGe6mycLyiclKPh>7l zmKcx#NuZhr^y7;9rCK#pGg`GFQs(6$6T>x$#qzm}UT-p4G__$?bwC6;q(wcA#;z1# z8i1j->k_EyfVVQW*xj2-b764?M6#42uN|b7A>1q_>z3IH*%b=Hdle!&5KT>Q)U-r6 zyUXhP5jrA~%&v0Gh>4P-T3lxa8Put;;)Qr1Dw-h7vph$$ZkqQta-6_=1lBi;g(s{n zNOmR?Bc{npb62q#UcuwH$FR*rW55cMMN=GB6#HCT99a^YH9aYsVI?WH04Alj1ewC1 zZDxL72@x%!>F}~Z*d1hw4cojjdrhcO4O3JlP!kQq0hgl4LR|KG{XphvAJ6f$#|ON$ z$U>8q<7~j~_s2afpMe;Q+1&?)j%rf7RWC4fwzbHb1j83Di}P@@D8^wokpW9{oFC8u z*iC53&r9(NInML$ivC2lV1p7Z(iPbG#Dr~*buThZ=9j%Z@KtzeKPOkvp60llu8>4P z!$BX*@_yFsfuyo1ii8=Is#-DNe(kdDW4N0$y=^gAHE^_FNGO>el@fIWSQQv@_LpG3 zspWf?<&&voL6ofS7M8360dkNTFj}~*yl2i$8N8gsLy(Pcb00cKXDd)~<&_PUnKg6} zLu)oWMIBVOz#THY+Rw%v=!hl=GS>e=LirDt!Vo)dY$1kMS2ws2_8#?rE<|A`ORb{X z0^~5$zlr+?hPQUv6&+Yz{S`a78iUqflmIIk?kX`;L0pg-G*-x*o!?|tWTHJYKfqca zhO>Tiu67x9U5akIPwe=*r)^UG#G@C#*i%`1>)1_O_k1<}!6`e-%9oc36{b1q zzFXD0z84)=$DIA`{Ml*atIEdQJ|;P;a{27Wo~j3XUaPJRZG30$rkOFV>z&nC-aC2W zrwdi5FO?s9;_Id(E#{WH%D0>@`Mqz{zQEkZW4)*L&zZO4=!oV8C0k;?Wk2_<@7g<2 zTO2($Z{+(I+ZKHgJ@EX8`cvb-+pw$m{x2PMqhCpx%(3J00ebGGed6cJJO0{E_m%IT@XwwP zgx;Oo{hzjNUD91X<$7Ph^^#9sakoDGOlZxK$=|#_vg(nZ%~I8`ZyrCAJa}>6q7l6v zY;2*_^+)q-wQG7;uX%O;)6e~Qdf~;{XWl5g5;@V-ef7m1`_;?4kMCMPVp-(fL#w9E zns9KZclU&AcP*K4+cEEFtA6|C$l7)1x1X#%d2a3OZI?&>eJ}OccjCjNUVX=AF;Y delta 544 zcmV+*0^j}OcewDkwHjQaS(^U z`M+JB;);h&-3WrTXseSTxGsUKlu>O|hm}qqC5WzF>X6qxbbsm8A;^mzB7~xZ5Hp2+ zOGsTx&_hc>Q0-;}8t>V@|8&vN4*J?T%?!iG$8VgD)0eL%x{f|>Ig~!UURi$5f0hxe zMMVxGa&3OH{h?oW&S{C}=m3W|0LjFLJ+}Yn1yr8}Vrsr8PyDho_N&B!-2l=#Jlt~U z(sHS<>$~Z8*MEBaW-_8C4_pM&n|DjVQ!q2GU!Rjf!qnNqzAw{{ssa#r=9a>^tF~RT ztZvbRGRIMqSCR9mW`S6!^6kvsoL#B5rc}6Z07C3bz--_QY}a!$EV=!**pvwe+`8=$ zm67+K+h$j)ttkLeMg>3@i3h*UD)6AG-(KG}wOlUN>3_7nQjsje#NWN|$+TZG@Aixx zpipp;kI* diff --git a/src/SketchPlugin/plugin-Sketch.xml b/src/SketchPlugin/plugin-Sketch.xml index 411884a64..c8c765291 100644 --- a/src/SketchPlugin/plugin-Sketch.xml +++ b/src/SketchPlugin/plugin-Sketch.xml @@ -42,7 +42,7 @@ + helpfile="lineFeature.html" > + helpfile="polylineFeature.html">