Fix creation of workplane based on a workplane.
This fixes functionality introduced by commit 3c45158
, which did not
take into account reference groups.
single-window
parent
c97ba6b928
commit
e56630e71d
|
@ -121,6 +121,13 @@ void Group::MenuGroup(Command id) {
|
|||
if(SS.GW.projRight.Dot(ut) < 0) g.predef.negateU = true;
|
||||
if(SS.GW.projUp. Dot(vt) < 0) g.predef.negateV = true;
|
||||
} else if(gs.workplanes == 1 && gs.n == 1) {
|
||||
if(gs.entity[0].request().IsFromReferences()) {
|
||||
Entity *wrkpl = SK.GetEntity(gs.entity[0]);
|
||||
Entity *normal = SK.GetEntity(wrkpl->normal);
|
||||
g.subtype = Subtype::WORKPLANE_BY_POINT_ORTHO;
|
||||
g.predef.origin = wrkpl->point[0];
|
||||
g.predef.q = normal->NormalGetNum();
|
||||
} else {
|
||||
Group *wrkplg = SK.GetGroup(gs.entity[0].group());
|
||||
g.subtype = wrkplg->subtype;
|
||||
g.predef.origin = wrkplg->predef.origin;
|
||||
|
@ -130,8 +137,9 @@ void Group::MenuGroup(Command id) {
|
|||
g.predef.swapUV = wrkplg->predef.swapUV;
|
||||
g.predef.negateU = wrkplg->predef.negateU;
|
||||
g.predef.negateV = wrkplg->predef.negateV;
|
||||
} else {
|
||||
} else if(wrkplg->subtype == Subtype::WORKPLANE_BY_POINT_ORTHO) {
|
||||
g.predef.q = wrkplg->predef.q;
|
||||
} else ssassert(false, "Unexpected workplane subtype");
|
||||
}
|
||||
} else {
|
||||
Error("Bad selection for new sketch in workplane. This "
|
||||
|
|
Loading…
Reference in New Issue