コード例 #1
0
ファイル: OngletDessin.cs プロジェクト: Titifonky/SwExtension
        private void OnClickFeuille(object sender, EventArgs e)
        {
            try
            {
                if (DessinActif.IsNull())
                {
                    return;
                }

                var Feuille = DessinActif.eFeuilleActive();
                var echelle = TextBoxFeuille.Text.Split(':');
                if (echelle.Length == 2)
                {
                    var e1 = echelle[0].eToDouble();
                    var e2 = echelle[1].eToDouble();
                    if (e1 > 0 && e2 > 0)
                    {
                        Feuille.SetScale(e1, e2, false, false);
                        MdlActif.EditRebuild3();
                    }
                }
            }
            catch
            {
                Deconnecter();
            }
        }
コード例 #2
0
        private DrawingDoc CreerPlan(String materiau, Double epaisseur, Boolean mettreAJourExistant)
        {
            String Fichier = NomFichierPlan(materiau, epaisseur);

            if (DicDessins.ContainsKey(Fichier))
            {
                return(DicDessins[Fichier]);
            }

            DrawingDoc Dessin = null;
            ModelDoc2  Mdl    = null;

            if (mettreAJourExistant)
            {
                Mdl = Sw.eOuvrir(Path.Combine(DossierDVP, Fichier), eTypeDoc.Dessin);
            }

            if (Mdl.IsNull())
            {
                Dessin = Sw.eCreerDocument(DossierDVP, Fichier, eTypeDoc.Dessin, CONSTANTES.MODELE_DE_DESSIN_LASER).eDrawingDoc();
            }
            else
            {
                Dessin = Mdl.eDrawingDoc();
                return(Dessin);
            }

            Dessin.eFeuilleActive().SetName(Fichier);
            DicDessins.Add(Fichier, Dessin);

            Dessin.eModelDoc2().pAppliquerOptionsDessinLaser(AfficherNotePliage, TailleInscription);

            return(Dessin);
        }
コード例 #3
0
        private DrawingDoc CreerPlan(String materiau, Double epaisseur)
        {
            String Fichier = String.Format("{0}{1} - Ep{2}",
                                           String.IsNullOrWhiteSpace(RefFichier) ? "" : RefFichier + " - ",
                                           materiau.eGetSafeFilename("-"),
                                           epaisseur.ToString().Replace('.', ',')
                                           ).Trim();

            if (DicDessins.ContainsKey(Fichier))
            {
                return(DicDessins[Fichier]);
            }

            if (MajPlans)
            {
                var di            = new DirectoryInfo(DossierDVP);
                var NomFichierExt = Fichier + eTypeDoc.Dessin.GetEnumInfo <ExtFichier>();
                var r             = di.GetFiles(NomFichierExt, SearchOption.TopDirectoryOnly);
                if (r.Length > 0)
                {
                    int        Erreur = 0, Warning = 0;
                    DrawingDoc dessin = App.Sw.OpenDoc6(Path.Combine(DossierDVP, NomFichierExt),
                                                        (int)swDocumentTypes_e.swDocDRAWING,
                                                        (int)swOpenDocOptions_e.swOpenDocOptions_Silent,
                                                        "",
                                                        ref Erreur,
                                                        ref Warning).eDrawingDoc();
                    DicDessins.Add(Fichier, dessin);

                    return(dessin);
                }
            }

            DrawingDoc Dessin = Sw.eCreerDocument(DossierDVP, Fichier, eTypeDoc.Dessin, CONSTANTES.MODELE_DE_DESSIN_LASER).eDrawingDoc();

            Dessin.eFeuilleActive().SetName(Fichier);
            DicDessins.Add(Fichier, Dessin);

            ModelDoc2 mdl = Dessin.eModelDoc2();

            LayerMgr LM = mdl.GetLayerManager();

            LM.AddLayer("GRAVURE", "", 1227327, (int)swLineStyles_e.swLineCONTINUOUS, (int)swLineWeights_e.swLW_LAYER);
            LM.AddLayer("QUANTITE", "", 1227327, (int)swLineStyles_e.swLineCONTINUOUS, (int)swLineWeights_e.swLW_LAYER);

            ModelDocExtension ext = mdl.Extension;

            ext.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swFlatPatternOpt_ShowFixedFace, 0, false);
            ext.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swShowSheetMetalBendNotes, (int)swUserPreferenceOption_e.swDetailingNoOptionSpecified, AfficherNotePliage);

            TextFormat tf = ext.GetUserPreferenceTextFormat(((int)(swUserPreferenceTextFormat_e.swDetailingAnnotationTextFormat)), 0);

            tf.CharHeight = TailleInscription / 1000.0;
            ext.SetUserPreferenceTextFormat((int)swUserPreferenceTextFormat_e.swDetailingAnnotationTextFormat, 0, tf);

            return(Dessin);
        }
コード例 #4
0
        protected override void Command()
        {
            try
            {
                DrawingDoc dessin = MdlBase.eDrawingDoc();

                String nom = dessin.eFeuilleActive().GetName();

                if (Interaction.InputBox("Nouveau nom", "Nom :", ref nom) == DialogResult.OK)
                {
                    if (!String.IsNullOrWhiteSpace(nom))
                    {
                        dessin.eFeuilleActive().SetName(nom);
                    }
                }
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
コード例 #5
0
ファイル: OngletDessin.cs プロジェクト: Titifonky/SwExtension
        public int ActiveDocChange()
        {
            MdlActif = _Sw.ActiveDoc;

            if (DessinActif.IsNull() && MdlActif.IsRef() && (MdlActif.TypeDoc() == eTypeDoc.Dessin))
            {
                DessinActif = MdlActif.eDrawingDoc();
                AjouterEvenement();
                DessinActif_ActivateSheetPostNotify(DessinActif.eFeuilleActive().GetName());
            }
            else if (MdlActif.IsRef() && (MdlActif.TypeDoc() != eTypeDoc.Dessin))
            {
                Deconnecter();
            }

            return(1);
        }
コード例 #6
0
        protected override void Command()
        {
            try
            {
                DrawingDoc dessin = MdlBase.eDrawingDoc();

                String FeuilleCourante = dessin.eFeuilleActive().GetName();

                Boolean HauteQualite = true;

                WindowLog.Ecrire("Haute qualité : " + (HauteQualite ? "oui" : "non"));
                WindowLog.SautDeLigne();

                MdlBase.Extension.UsePageSetup = (int)swPageSetupInUse_e.swPageSetupInUse_DrawingSheet;

                App.Sw.RunCommand((int)swCommands_e.swCommands_Page_Setup, "");

                dessin.eParcourirLesFeuilles(
                    f =>
                {
                    //dessin.ActivateSheet(f.GetName());
                    WindowLog.Ecrire(" - " + f.GetName());
                    String res = dessin.eMettreEnPagePourImpression(f, swPageSetupDrawingColor_e.swPageSetup_AutomaticDrawingColor, HauteQualite);
                    WindowLog.Ecrire("    " + res);
                    WindowLog.SautDeLigne();
                    return(false);
                }
                    );

                //dessin.ActivateSheet(FeuilleCourante);
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
コード例 #7
0
        private void CreerVue(Corps corps)
        {
            if (!corps.Dvp || !corps.Maj)
            {
                return;
            }

            var    QuantiteDiff = Quantite * (corps.Qte + corps.QteSup);
            Double Epaisseur    = corps.Dimension.eToDouble();

            var cheminFichier = corps.CheminFichierRepere;

            if (!File.Exists(cheminFichier))
            {
                return;
            }

            var mdlCorps = Sw.eOuvrir(cheminFichier);

            if (mdlCorps.IsNull())
            {
                return;
            }

            var piece = mdlCorps.ePartDoc();

            var listeCfgPliee  = mdlCorps.eListeNomConfiguration(eTypeConfig.Pliee);
            var NomConfigPliee = listeCfgPliee[0];

            if (mdlCorps.eNomConfigActive() != NomConfigPliee)
            {
                mdlCorps.ShowConfiguration2(NomConfigPliee);
            }

            WindowLog.EcrireF("{0}  x{1}", corps.RepereComplet, QuantiteDiff);
            piece.ePremierCorps(false).eVisible(true);

            Double Volume1 = piece.ePremierCorps().eVolume();

            piece.ePremierCorps(false).eVisible(true);

            corps.NbPli = piece.pNbPli();
            var listeCfgDepliee = mdlCorps.eListeNomConfiguration(eTypeConfig.Depliee);

            if (listeCfgDepliee.Count == 0)
            {
                return;
            }

            var NomConfigDepliee = listeCfgDepliee[0];

            if (!mdlCorps.ShowConfiguration2(NomConfigDepliee))
            {
                WindowLog.EcrireF("  - Pas de configuration dvp");
                return;
            }

            corps.CalculerDiffPliage(Volume1, piece.ePremierCorps().eVolume());

            mdlCorps.ePartDoc().ePremierCorps(false).eVisible(true);
            mdlCorps.EditRebuild3();
            mdlCorps.ePartDoc().ePremierCorps(false).eVisible(true);

            DrawingDoc dessin = CreerPlan(corps.Materiau, Epaisseur, MettreAjourCampagne);

            dessin.eModelDoc2().eActiver();
            Sheet Feuille = dessin.eFeuilleActive();

            try
            {
                if (MettreAjourCampagne)
                {
                    foreach (var vue in Feuille.eListeDesVues())
                    {
                        var mdlVue = vue.ReferencedDocument;
                        if (mdlCorps.GetPathName() == mdlVue.GetPathName())
                        {
                            vue.eSelectionner(dessin);
                            dessin.eModelDoc2().EditDelete();
                            dessin.eModelDoc2().eEffacerSelection();
                            break;
                        }
                    }
                }

                View v = CreerVueToleDvp(dessin, Feuille, piece, NomConfigDepliee, corps.RepereComplet, corps.Materiau, QuantiteDiff, Epaisseur);
            }
            catch (Exception e)
            {
                WindowLog.Ecrire("  - Erreur");
                this.LogMethode(new Object[] { e });
            }
            finally
            {
                WindowLog.Ecrire("  - Ok");
            }

            mdlCorps.ShowConfiguration2(NomConfigPliee);

            mdlCorps.eFermer();
        }
コード例 #8
0
        protected override void Command()
        {
            try
            {
                if (ConvertirEsquisse)
                {
                    WindowLog.Ecrire("Attention !!!");
                    WindowLog.Ecrire("Les dvp seront convertis en esquisse");
                    WindowLog.SautDeLigne();
                }

                CreerDossierDVP();

                eTypeCorps       Filtre        = eTypeCorps.Tole;
                HashSet <String> HashMateriaux = new HashSet <string>(ListeMateriaux);
                HashSet <String> HashEp        = new HashSet <string>(ListeEp);

                var dic = MdlBase.DenombrerDossiers(ComposantsExterne,
                                                    fDossier =>
                {
                    BodyFolder swDossier = fDossier.GetSpecificFeature2();

                    if (Filtre.HasFlag(swDossier.eTypeDeDossier()) && HashMateriaux.Contains(swDossier.eGetMateriau()))
                    {
                        String Ep = swDossier.ePremierCorps().eEpaisseurCorps().ToString();

                        if (HashEp.Contains(Ep))
                        {
                            return(true);
                        }
                    }

                    return(false);
                }
                                                    );

                int MdlPct = 0;
                foreach (var mdl in dic.Keys)
                {
                    mdl.eActiver(swRebuildOnActivation_e.swRebuildActiveDoc);

                    WindowLog.SautDeLigne();
                    WindowLog.EcrireF("[{1}/{2}] {0}", mdl.eNomSansExt(), ++MdlPct, dic.Count);


                    int CfgPct = 0;
                    foreach (var NomConfigPliee in dic[mdl].Keys)
                    {
                        WindowLog.SautDeLigne();
                        WindowLog.EcrireF("  [{1}/{2}] Config : \"{0}\"", NomConfigPliee, ++CfgPct, dic[mdl].Count);
                        mdl.ShowConfiguration2(NomConfigPliee);
                        mdl.EditRebuild3();
                        PartDoc Piece = mdl.ePartDoc();

                        var ListeDossier = dic[mdl][NomConfigPliee];
                        int DrPct        = 0;
                        foreach (var t in ListeDossier)
                        {
                            var IdDossier    = t.Key;
                            var QuantiteTole = t.Value * Quantite;

                            Feature    fDossier = Piece.FeatureById(IdDossier);
                            BodyFolder dossier  = fDossier.GetSpecificFeature2();

                            var RefDossier = dossier.eProp(CONSTANTES.REF_DOSSIER);

                            Body2 Tole = dossier.eCorpsDeTolerie();

                            WindowLog.SautDeLigne();
                            WindowLog.EcrireF("    - [{1}/{2}] Dossier : \"{0}\" x{3}", RefDossier, ++DrPct, ListeDossier.Count, QuantiteTole);

                            String Materiau = Tole.eGetMateriauCorpsOuPiece(Piece, NomConfigPliee);

                            Materiau = ForcerMateriau.IsRefAndNotEmpty(Materiau);

                            Double Epaisseur        = Tole.eEpaisseurCorps();
                            String NomConfigDepliee = Sw.eNomConfigDepliee(NomConfigPliee, RefDossier);

                            WindowLog.EcrireF("      Ep {0} / Materiau {1}", Epaisseur, Materiau);
                            WindowLog.EcrireF("          Config {0}", NomConfigDepliee);

                            if (ConvertirEsquisse)
                            {
                                if (!mdl.eListeNomConfiguration().Contains(NomConfigDepliee))
                                {
                                    mdl.CreerConfigDepliee(NomConfigDepliee, NomConfigPliee);
                                }

                                WindowLog.EcrireF("          Configuration crée : {0}", NomConfigDepliee);
                                mdl.ShowConfiguration2(NomConfigDepliee);
                                Tole.DeplierTole(mdl, NomConfigDepliee);
                            }
                            else if (!mdl.ShowConfiguration2(NomConfigDepliee))
                            {
                                DicErreur.Add(mdl.eNomSansExt() + " -> cfg : " + NomConfigPliee + " - No : " + RefDossier + " = " + NomConfigDepliee);
                                WindowLog.EcrireF("La configuration n'éxiste pas");
                                continue;
                            }

                            mdl.EditRebuild3();

                            DrawingDoc dessin = CreerPlan(Materiau, Epaisseur);
                            dessin.eModelDoc2().eActiver();
                            Sheet Feuille = dessin.eFeuilleActive();

                            View v = CreerVueToleDvp(dessin, Feuille, Piece, NomConfigDepliee, RefDossier, Materiau, QuantiteTole, Epaisseur);

                            if (ConvertirEsquisse)
                            {
                                mdl.ShowConfiguration2(NomConfigPliee);
                                mdl.EditRebuild3();
                                mdl.DeleteConfiguration2(NomConfigDepliee);
                            }
                        }

                        NouvelleLigne = true;
                    }

                    mdl.eFermerSiDifferent(MdlBase);
                }

                foreach (DrawingDoc dessin in DicDessins.Values)
                {
                    int Errors = 0, Warnings = 0;
                    dessin.eModelDoc2().eActiver();
                    dessin.eFeuilleActive().eAjusterAutourDesVues();
                    dessin.eModelDoc2().ViewZoomtofit2();
                    dessin.eModelDoc2().Save3((int)swSaveAsOptions_e.swSaveAsOptions_SaveReferenced + (int)swSaveAsOptions_e.swSaveAsOptions_Silent, ref Errors, ref Warnings);
                }

                if (FermerPlan)
                {
                    foreach (ModelDoc2 dessin in DicDessins.Values)
                    {
                        dessin.eFermer();
                    }
                }

                if (DicErreur.Count > 0)
                {
                    WindowLog.SautDeLigne();

                    WindowLog.Ecrire("Liste des erreurs :");
                    foreach (var item in DicErreur)
                    {
                        WindowLog.Ecrire(" - " + item);
                    }

                    WindowLog.SautDeLigne();
                }
                else
                {
                    WindowLog.Ecrire("Pas d'erreur");
                }

                File.WriteAllText(Path.Combine(DossierDVP, "Log_CreerDvp.txt"), WindowLog.Resume);
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }