private void PositionnerVue(Sheet feuille, View vue, GeomVue g) { Double JeuEntreVue = 0.05; eZone z; if (DicPoint.ContainsKey(feuille.GetName())) { z = DicPoint[feuille.GetName()]; z.PointMax.X += JeuEntreVue; } else { z = new eZone(); Double Ymin = JeuEntreVue; if (feuille.eListeDesVues().Count > 0) { var e = feuille.eEnveloppeDesVues(); Ymin += e.PointMax.Y; } z.PointMin.X = JeuEntreVue; z.PointMin.Y = Ymin; z.PointMax.X = z.PointMin.X; z.PointMax.Y = z.PointMin.Y; DicPoint.Add(feuille.GetName(), z); } Boolean NouvelleLigne = false; if (z.PointMax.X > 10) { NouvelleLigne = true; } if (NouvelleLigne) { z.PointMin.Y = z.PointMax.Y + JeuEntreVue; z.PointMax.X = z.PointMin.X; z.PointMax.Y = z.PointMin.Y; NouvelleLigne = false; } Double[] P = new Double[2]; P[0] = z.PointMax.X + (g.ptCentreVueX - g.ptMinX); P[1] = z.PointMin.Y + (g.ptCentreVueY - g.ptMinY); vue.Position = P; z.PointMax.X = z.PointMax.X + g.Lg + JeuEntreVue; z.PointMax.Y = Math.Max(z.PointMax.Y, z.PointMin.Y + g.Ht); }
private GeomVue AppliquerOptionsVue(DrawingDoc dessin, PartDoc piece, View vue) { vue.ShowSheetMetalBendNotes = AfficherNotePliage; MathUtility SwMath = App.Sw.GetMathUtility(); var liste = piece.eListeFonctionsDepliee(); if (liste.Count == 0) { return(null); } Feature FonctionDepliee = liste[0]; GeomVue g = null; var Liste = FonctionDepliee.eListeSousFonction(); Feature f = Liste[0]; // Les fonctions "Lignes de pliage" et "Cube de visualisation" ne sont pas toujours correctement // nommées donc ont considère que la première fonction = Ligne de pliage et la deuxième = Cube de visualisation if (f.GetTypeName2() == FeatureType.swTnProfileFeature) { ModelDoc2 mdlBase = dessin.eModelDoc2(); f.eSelectionnerById2Dessin(mdlBase, vue); if (AfficherLignePliage) { mdlBase.UnblankSketch(); } else { mdlBase.BlankSketch(); } mdlBase.eEffacerSelection(); } f = Liste[1]; if (f.GetTypeName2() == FeatureType.swTnProfileFeature) { try { f.eModifierEtat(swFeatureSuppressionAction_e.swUnSuppressFeature); Sketch Esquisse = f.GetSpecificFeature2(); if (OrienterDvp) { Double Angle = AngleCubeDeVisualisation(vue, Esquisse); // On oriente la vue switch (OrientationDvp) { case eOrientation.Portrait: if (Math.Abs(Angle) != MathX.eRad90D) { Double a = MathX.eRad90D - Math.Abs(Angle); vue.Angle = (Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a; } break; case eOrientation.Paysage: if (Math.Abs(Angle) != 0 || Math.Abs(Angle) != MathX.eRad180D) { Double a = MathX.eRad90D - Math.Abs(Angle); vue.Angle = ((Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a) - MathX.eRad90D; } break; default: break; } } g = new GeomVue(vue, Esquisse); } catch { WindowLog.EcrireF("Impossible d'orienter la vue : {0}", vue.Name); } } //FonctionDepliee.eParcourirSousFonction( // f => // { // if (f.Name.StartsWith(CONSTANTES.LIGNES_DE_PLIAGE)) // { // //String NomSelection = f.Name + "@" + vue.RootDrawingComponent.Name + "@" + vue.Name; // //Dessin.Extension.SelectByID2(NomSelection, "SKETCH", 0, 0, 0, false, 0, null, 0); // ModelDoc2 mdlBase = dessin.eModelDoc2(); // f.eSelectionnerById2Dessin(mdlBase, vue); // if (AfficherLignePliage) // mdlBase.UnblankSketch(); // else // mdlBase.BlankSketch(); // mdlBase.eEffacerSelection(); // } // else if (f.Name.StartsWith(CONSTANTES.CUBE_DE_VISUALISATION)) // { // try // { // f.eModifierEtat(swFeatureSuppressionAction_e.swUnSuppressFeature); // Sketch Esquisse = f.GetSpecificFeature2(); // if (OrienterDvp) // { // Double Angle = AngleCubeDeVisualisation(vue, Esquisse); // // On oriente la vue // switch (OrientationDvp) // { // case eOrientation.Portrait: // if (Math.Abs(Angle) != MathX.eRad90D) // { // Double a = MathX.eRad90D - Math.Abs(Angle); // vue.Angle = (Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a; // } // break; // case eOrientation.Paysage: // if (Math.Abs(Angle) != 0 || Math.Abs(Angle) != MathX.eRad180D) // { // Double a = MathX.eRad90D - Math.Abs(Angle); // vue.Angle = ((Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a) - MathX.eRad90D; // } // break; // default: // break; // } // } // g = new GeomVue(vue, Esquisse); // } // catch // { // WindowLog.EcrireF("Impossible d'orienter la vue : {0}", vue.Name); // } // return true; // } // return false; // } // ); return(g); }
public View CreerVueToleDvp(DrawingDoc dessin, Sheet feuille, PartDoc piece, String configDepliee, String Ref, String materiau, int quantite, Double epaisseur) { var NomVue = piece.eModelDoc2().eNomSansExt() + " - " + configDepliee; dessin.eModelDoc2().eEffacerSelection(); View Vue = dessin.CreateFlatPatternViewFromModelView3(piece.eModelDoc2().GetPathName(), configDepliee, 0, 0, 0, !AfficherLignePliage, false); Vue.ScaleDecimal = 1; if (Vue.IsRef()) { Vue.SetName2(NomVue); GeomVue g = AppliquerOptionsVue(dessin, piece, Vue); Vue.eSelectionner(dessin); try { Note Note = dessin.eModelDoc2().InsertNote(String.Format("qté {0} // réf {1} [{2}] (Ep{3})", quantite, Ref, materiau, epaisseur)); Note.SetTextJustification((int)swTextJustification_e.swTextJustificationCenter); Annotation Annotation = Note.GetAnnotation(); TextFormat swTextFormat = Annotation.GetTextFormat(0); // Hauteur du texte en fonction des dimensions du dvp, 2.5% de la dimension max du dvp swTextFormat.CharHeight = Math.Max(0.005, Math.Floor(Math.Max(g.Ht, g.Lg) * 0.025 * 1000) * 0.001); Annotation.SetTextFormat(0, false, swTextFormat); Annotation.Layer = "QUANTITE"; Annotation.SetLeader3((int)swLeaderStyle_e.swNO_LEADER, (int)swLeaderSide_e.swLS_SMART, true, true, false, false); // Décalage du texte en fonction des dimensions du dvp, 0.1% de la dimension max du dvp Annotation.SetPosition(g.ptCentreRectangleX, g.ptMinY - Math.Max(0.005, Math.Floor(Math.Max(g.Ht, g.Lg) * 0.001 * 1000) * 0.001), 0); g.Agrandir(Note); } catch (Exception e) { WindowLog.Ecrire(" - Erreur"); this.LogMethode(new Object[] { e }); } if (InscrireNomTole) { try { Note Note = dessin.eModelDoc2().InsertNote(Ref); Note.SetTextJustification((int)swTextJustification_e.swTextJustificationCenter); Annotation Annotation = Note.GetAnnotation(); TextFormat swTextFormat = Annotation.GetTextFormat(0); // Hauteur du texte en fonction des dimensions du dvp, 2.5% de la dimension max du dvp swTextFormat.CharHeight = TailleInscription * 0.001; Annotation.SetTextFormat(0, false, swTextFormat); Annotation.Layer = "GRAVURE"; Annotation.SetLeader3((int)swLeaderStyle_e.swNO_LEADER, (int)swLeaderSide_e.swLS_SMART, true, true, false, false); } catch (Exception e) { WindowLog.Ecrire(" - Erreur"); this.LogMethode(new Object[] { e }); } } PositionnerVue(feuille, Vue, g); return(Vue); } WindowLog.Ecrire(" - Erreur : pas de vue dvp"); return(null); }
private GeomVue AppliquerOptionsVue(DrawingDoc dessin, PartDoc piece, View vue) { vue.ShowSheetMetalBendNotes = AfficherNotePliage; MathUtility SwMath = App.Sw.GetMathUtility(); ModelDoc2 mdl = dessin.eModelDoc2(); Body2 c = piece.eChercherCorps(CONSTANTES.NOM_CORPS_DEPLIEE, true); GeomVue g = null; c.eFonctionEtatDepliee().eParcourirSousFonction( f => { if (f.Name.StartsWith(CONSTANTES.LIGNES_DE_PLIAGE)) { String NomSelection = f.Name + "@" + vue.RootDrawingComponent.Name + "@" + vue.Name; mdl.Extension.SelectByID2(NomSelection, "SKETCH", 0, 0, 0, false, 0, null, 0); if (AfficherLignePliage) { mdl.UnblankSketch(); } else { mdl.BlankSketch(); } mdl.eEffacerSelection(); } else if (f.Name.StartsWith(CONSTANTES.CUBE_DE_VISUALISATION)) { try { f.eModifierEtat(swFeatureSuppressionAction_e.swUnSuppressFeature); Sketch Esquisse = f.GetSpecificFeature2(); if (OrienterDvp) { Double Angle = AngleCubeDeVisualisation(vue, Esquisse); // On oriente la vue switch (OrientationDvp) { case eOrientation.Portrait: if (Math.Abs(Angle) != MathX.eRad90D) { Double a = MathX.eRad90D - Math.Abs(Angle); vue.Angle = (Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a; } break; case eOrientation.Paysage: if (Math.Abs(Angle) != 0 || Math.Abs(Angle) != MathX.eRad180D) { Double a = MathX.eRad90D - Math.Abs(Angle); vue.Angle = ((Math.Sign(Angle) == 0 ? 1 : Math.Sign(Angle)) * a) - MathX.eRad90D; } break; default: break; } } g = new GeomVue(vue, Esquisse); } catch { WindowLog.EcrireF("Impossible d'orienter la vue : {0}", vue.Name); } return(true); } return(false); } ); return(g); }
public View CreerVueToleDvp(DrawingDoc dessin, Sheet feuille, PartDoc piece, String configDepliee, String Ref, String materiau, int quantite, Double epaisseur) { // Si des corps autre que la tole dépliée sont encore visible dans la config, on les cache et on recontruit tout foreach (Body2 pCorps in piece.eListeCorps(false)) { if ((pCorps.Name == CONSTANTES.NOM_CORPS_DEPLIEE)) { pCorps.eVisible(true); } else { pCorps.eVisible(false); } } var NomVue = piece.eModelDoc2().eNomSansExt() + " - " + configDepliee; if (MajPlans) { foreach (var vue in feuille.eListeDesVues()) { if (vue.GetName2() == NomVue) { vue.eSelectionner(dessin); dessin.eModelDoc2().Extension.DeleteSelection2((int)swDeleteSelectionOptions_e.swDelete_Advanced); break; } } } dessin.eModelDoc2().eEffacerSelection(); View Vue = dessin.CreateFlatPatternViewFromModelView3(piece.eModelDoc2().GetPathName(), configDepliee, 0, 0, 0, !AfficherLignePliage, false); Vue.ScaleDecimal = 1; if (Vue.IsRef()) { Vue.SetName2(NomVue); GeomVue g = AppliquerOptionsVue(dessin, piece, Vue); Vue.eSelectionner(dessin); { Note Note = dessin.eModelDoc2().InsertNote(String.Format("{0}× {1} [{2}] (Ep{3})", quantite, Ref, materiau, epaisseur)); Note.SetTextJustification((int)swTextJustification_e.swTextJustificationCenter); Annotation Annotation = Note.GetAnnotation(); TextFormat swTextFormat = Annotation.GetTextFormat(0); // Hauteur du texte en fonction des dimensions du dvp, 2.5% de la dimension max du dvp swTextFormat.CharHeight = Math.Max(0.005, Math.Floor(Math.Max(g.Ht, g.Lg) * 0.025 * 1000) * 0.001); Annotation.SetTextFormat(0, false, swTextFormat); Annotation.Layer = "QUANTITE"; Annotation.SetLeader3((int)swLeaderStyle_e.swNO_LEADER, (int)swLeaderSide_e.swLS_SMART, true, true, false, false); // Décalage du texte en fonction des dimensions du dvp, 0.1% de la dimension max du dvp Annotation.SetPosition(g.ptCentreRectangleX, g.ptMinY - Math.Max(0.005, Math.Floor(Math.Max(g.Ht, g.Lg) * 0.001 * 1000) * 0.001), 0); g.Agrandir(Note); } if (InscrireNomTole) { Note Note = dessin.eModelDoc2().InsertNote(Ref); Note.SetTextJustification((int)swTextJustification_e.swTextJustificationCenter); Annotation Annotation = Note.GetAnnotation(); TextFormat swTextFormat = Annotation.GetTextFormat(0); // Hauteur du texte en fonction des dimensions du dvp, 2.5% de la dimension max du dvp swTextFormat.CharHeight = TailleInscription * 0.001; Annotation.SetTextFormat(0, false, swTextFormat); Annotation.Layer = "GRAVURE"; Annotation.SetLeader3((int)swLeaderStyle_e.swNO_LEADER, (int)swLeaderSide_e.swLS_SMART, true, true, false, false); } if (ConvertirEsquisse) { String titre = Vue.GetName2(); Vue.ReplaceViewWithSketch(); Vue = feuille.eListeDesVues().Last(); Vue.SetName2(titre); g = new GeomVue(Vue); } PositionnerVue(feuille, Vue, g); return(Vue); } return(null); }