예제 #1
0
        private void AfficherConfigs()
        {
            var Comp = MdlBase.eSelect_RecupererComposant(1, _Select_CompBase.Marque);

            if (Comp.IsRef())
            {
                if (CompBase.IsRef() && (CompBase.GetPathName() == Comp.GetPathName()))
                {
                    return;
                }

                Comp.eDeSelectById(MdlBase);
                CompBase = Comp;
                _TextListBox_Configs.Vider();
            }
            else
            {
                return;
            }

            _TextBox_NomComp.Text = Comp.eNomSansExt();

            Rechercher_Composants(CompBase);
            _TextListBox_Configs.Liste = Bdd.ListeNomsConfigs();
        }
            protected void PreSelection()
            {
                try
                {
                    MdlBase.ClearSelection2(true);

                    Component2 Marche = MdlBase.eRecChercherComposant(c =>
                    {
                        return(Regex.IsMatch(c.Name2, pMarche.GetValeur <String>()) &&
                               !c.IsSuppressed());
                    });

                    if (Marche.IsRef())
                    {
                        SelectFace(_Select_F_Dessus, Marche, pFaceDessus);
                        SelectFace(_Select_F_Devant, Marche, pFaceDevant);
                    }

                    Component2 ContreMarche = MdlBase.eRecChercherComposant(c =>
                    {
                        return(Regex.IsMatch(c.Name2, pEsquisse.GetValeur <String>()) &&
                               !c.IsSuppressed());
                    });

                    if (ContreMarche.IsRef())
                    {
                        SelectEsquisse(_Select_ContreMarche_Esquisse, ContreMarche, pNomEsquisse);
                    }
                }
                catch (Exception e)
                { this.LogMethode(new Object[] { e }); }
            }
예제 #3
0
        protected override void Command()
        {
            try
            {
                if (MdlBase.TypeDoc() == eTypeDoc.Piece)
                {
                    Decompter(MdlBase.eComposantRacine());
                }
                else
                {
                    MdlBase.eRecParcourirComposants(Decompter);
                }

                WindowLog.SautDeLigne();

                foreach (var item in DicQte)
                {
                    WindowLog.EcrireF("{0,-5} : {1,-5}", "Ø " + Math.Round(item.Key, 2), "×" + item.Value);
                }
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
예제 #4
0
        protected override void Command()
        {
            try
            {
                if (MdlBase.eSelect_RecupererTypeObjet() != e_swSelectType.swSelFACES)
                {
                    return;
                }

                var faceSel = MdlBase.eSelect_RecupererObjet <Face2>();

                MdlBase.eEffacerSelection();

                var faceBase = faceSel;

                var liste = new List <Face2>();

                faceBase.eChercherFacesTangentes(ref liste);

                //liste = liste.FindAll(f => ((Surface)f.GetSurface()).IsPlane());

                foreach (var face in liste)
                {
                    face.eSelectEntite(MdlBase, -1, true);
                }
            }
            catch (Exception e)
            {
                this.LogMethode(new Object[] { e });
            }
        }
예제 #5
0
        private void SelectionChanged(Object sender, int Item)
        {
            var TextListBox = sender as CtrlTextListBox;

            var listeElements = Bdd.ListeFace(TextListBox.SelectedText);

            var listeFace = new List <Face2>();

            foreach (var element in listeElements)
            {
                if (element.Key.IsHidden(false) && !ListeHiddenComposants.Contains(element.Key.eKeyAvecConfig()))
                {
                    element.Key.eSelectById(MdlBase, 16, true);
                    element.Key.eDeSelectById(MdlBase);
                    ListeHiddenComposants.Add(element.Key.eKeyAvecConfig());
                }

                foreach (var face in element.Value)
                {
                    if (face.IsNull())
                    {
                        continue;
                    }

                    listeFace.Add(face);
                }
            }

            ExitIsoler();

            MdlBase.eSelectMulti(listeFace, _Select_Selection.Marque, false);
        }
예제 #6
0
            public PageDxfDwg()
            {
                try
                {
                    FormatExport                = _Config.AjouterParam("FormatExport", eTypeFichierExport.DWG, "Format");
                    VersionExport               = _Config.AjouterParam("VersionExport", eDxfFormat.R2013, "Version");
                    UtiliserPolicesACAD         = _Config.AjouterParam("UtiliserPoliceACAD", true, "Utiliser les polices AutoCAD");
                    UtiliserStylesACAD          = _Config.AjouterParam("UtiliserStylesACAD", false, "Utiliser les styles AutoCAD");
                    FusionnerExtremites         = _Config.AjouterParam("FusionnerExtremites", true, "Fusionner les extremités");
                    ToleranceFusion             = _Config.AjouterParam("ToleranceFusion", 0.01, "Tolérance de fusion", "Tolérance de fusion");
                    ExporterHauteQualite        = _Config.AjouterParam("ExporterHauteQualite", true, "Exporter en haute qualité");
                    ExporterFeuilleEspacePapier = _Config.AjouterParam("ExporterFeuilleEspacePapier", false, "Exporter les feuilles dans l'espace papier");
                    ConvertirSplineToPolyligne  = _Config.AjouterParam("ConvertirSplineToPolyligne", false, "Convertir les splines en polylignes");

                    CheminDernierDossier = _Config.AjouterParam("CheminDernierDossier", "", "Dernier dossier utilisé");
                    if (CheminDernierDossier.GetValeur <String>().Contains(MdlBase.eDossier()))
                    {
                        MdlBase.eDrawingDoc().eSetDernierDossier(OutilsCommun.CheminRelatif(MdlBase.eDossier(), CheminDernierDossier.GetValeur <String>()));
                    }
                    else
                    {
                        MdlBase.eDrawingDoc().eSetDernierDossier("");
                    }

                    OnCalque       += Calque;
                    OnRunOkCommand += RunOkCommand;
                }
                catch (Exception e)
                { this.LogMethode(new Object[] { e }); }
            }
예제 #7
0
        protected void Rechercher_Infos()
        {
            WindowLog.Ecrire("Recherche des materiaux : ");

            ListeMateriaux = MdlBase.ListeMateriaux(eTypeCorps.Tole);

            foreach (var m in ListeMateriaux)
            {
                WindowLog.Ecrire(" - " + m);
            }

            WindowLog.SautDeLigne();

            _TextListBox_Materiaux.Liste = ListeMateriaux;
            _TextListBox_Materiaux.ToutSelectionner(false);
            _TextComboBox_ForcerMateriau.Liste         = ListeMateriaux;
            _TextComboBox_ForcerMateriau.SelectedIndex = 0;

            WindowLog.Ecrire("Recherche des ep de tôle : ");

            ListeEp = MdlBase.ListeEp();

            foreach (var m in ListeEp)
            {
                WindowLog.Ecrire(" - ep" + m);
            }

            WindowLog.SautDeLigne();

            _TextListBox_Ep.Liste = ListeEp;
            _TextListBox_Ep.ToutSelectionner(false);
        }
예제 #8
0
        private void IsolerComposants()
        {
            if (MdlBase.TypeDoc() != eTypeDoc.Assemblage)
            {
                return;
            }

            if (!Isoler)
            {
                List <Body2>      listeCorps = MdlBase.eSelect_RecupererListeObjets <Body2>(_Select_Selection.Marque);
                List <Component2> listeComps = MdlBase.eSelect_RecupererListeComposants(_Select_Selection.Marque);

                MdlBase.eSelectMulti(listeComps, _Select_Selection.Marque, false);

                MdlBase.eAssemblyDoc().Isolate();

                MdlBase.eSelectMulti(listeCorps, _Select_Selection.Marque, false);

                Isoler = true;

                _Button_IsolerComposants.Caption = "Afficher tout les composants";
            }
            else
            {
                ExitIsoler();
            }
        }
예제 #9
0
        protected void RunOkCommand()
        {
            CmdLierLesConfigurations Cmd = new CmdLierLesConfigurations();

            Cmd.MdlBase = MdlBase;

            if (MdlBase.TypeDoc() != eTypeDoc.Piece)
            {
                Cmd.ListeComposants = MdlBase.eSelect_RecupererListeComposants(_Select_Composants.Marque);
            }


            Cmd.CreerConfigsManquantes = true;

            if (MdlBase.TypeDoc() != eTypeDoc.Piece)
            {
                Cmd.CreerConfigsManquantes = _CheckBox_CreerLesConfigsManquantes.IsChecked;
            }

            Cmd.SupprimerNvlFonction = _CheckBox_SupprimerNvlFonction.IsChecked;
            Cmd.SupprimerNvComposant = _CheckBox_SupprimerNvComposant.IsChecked;

            Cmd.ListeConfig = new List <string>(_Texte_ListeConfigs.Text.Trim().Split(' '));

            MdlBase.ClearSelection2(true);

            Cmd.Executer();
        }
예제 #10
0
 private void Vider()
 {
     _TextListBox_Marche.Vider();
     ListeNomComp.Clear();
     ListeDim.Clear();
     MdlBase.eSelectMulti(ListeMarches, _Select_Marche.Marque);
 }
예제 #11
0
        protected void PreSelection()
        {
            try
            {
                MdlBase.ClearSelection2(true);

                SelectionMgr SelMgr = MdlBase.SelectionManager;
                Component2   Piece  = MdlBase.eRecChercherComposant(c => { return(Regex.IsMatch(c.Name2, _pPieceBase.GetValeur <String>()) &&
                                                                                  !c.IsSuppressed()); });
                Component2 Percage  = MdlBase.eRecChercherComposant(c => { return(Regex.IsMatch(c.Name2, _pPercage.GetValeur <String>()) &&
                                                                                  !c.IsSuppressed()); });

                if (Piece.IsRef())
                {
                    MdlBase.eSelectMulti(Piece, _Select_Percage.Marque, false);
                }

                if (Percage.IsRef())
                {
                    MdlBase.eSelectMulti(Percage, _Select_Percage.Marque, false);
                }

                _Select_Base.Focus = true;
            }
            catch (Exception e)
            { this.LogMethode(new Object[] { e }); }
        }
예제 #12
0
        private void ModifierDiffLumiere(ModelDoc2 mdl, int idLumiere, Double diff, Double ambiant, Double specular, Boolean etat)
        {
            var NomSwLumiere = NomLumiere(mdl, idLumiere);
            var PropLumiere  = (Double[])mdl.LightSourcePropertyValues[idLumiere];

            MdlBase.SetLightSourcePropertyValuesVB(NomSwLumiere, (int)PropLumiere[0], diff, GetRgb(PropLumiere), 1, PropLumiere[5], PropLumiere[6], PropLumiere[7], PropLumiere[8], PropLumiere[9], PropLumiere[10], PropLumiere[11], 0, 0, 0, ambiant, specular, 0, !etat);
        }
예제 #13
0
        protected override void Command()
        {
            try
            {
                View Vue = MdlBase.eSelect_RecupererObjet <View>(1, -1);

                if (Vue.GetBodiesCount() == 0)
                {
                    WindowLog.Ecrire("Aucun corps");
                    return;
                }

                Object[] TabCorps = (Object[])Vue.Bodies;

                DispatchWrapper[] arrBodiesIn = new DispatchWrapper[Vue.GetBodiesCount()];

                for (int i = 0; i < TabCorps.Length; i++)
                {
                    arrBodiesIn[i] = new DispatchWrapper(TabCorps[i]);
                    WindowLog.Ecrire(((Body2)TabCorps[i]).Name);
                }

                Vue.Bodies = (arrBodiesIn);

                WindowLog.Ecrire(Vue.Name);
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
예제 #14
0
        private void ActiverLumiere(ModelDoc2 mdl, int idLumiere, Boolean etat)
        {
            var NomSwLumiere = NomLumiere(mdl, idLumiere);
            var PropLumiere  = (Double[])mdl.LightSourcePropertyValues[idLumiere];

            MdlBase.SetLightSourcePropertyValuesVB(NomSwLumiere, (int)PropLumiere[0], PropLumiere[1], GetRgb(PropLumiere), 1, PropLumiere[5], PropLumiere[6], PropLumiere[7], PropLumiere[8], PropLumiere[9], PropLumiere[10], PropLumiere[11], 0, 0, 0, PropLumiere[15], PropLumiere[16], 0, !etat);
        }
예제 #15
0
        private void MajAmbiant(ModelDoc2 mdl, int idLumiere, double val)
        {
            var NomSwLumiere = NomLumiere(mdl, idLumiere);
            var PropLumiere  = (Double[])mdl.LightSourcePropertyValues[idLumiere];

            MdlBase.SetLightSourcePropertyValuesVB(NomSwLumiere, (int)PropLumiere[0], PropLumiere[1], GetRgb(PropLumiere), 1, PropLumiere[5], PropLumiere[6], PropLumiere[7], PropLumiere[8], PropLumiere[9], PropLumiere[10], PropLumiere[11], 0, 0, 0, val, PropLumiere[16], 0, false);
        }
예제 #16
0
        protected override void Command()
        {
            try
            {
                var lcfg = MdlBase.eListeNomConfiguration();

                for (int idLumiere = 0; idLumiere < MdlBase.GetLightSourceCount(); idLumiere++)
                {
                    var nomLumiere = MdlBase.LightSourceUserName[idLumiere];

                    if (nomLumiere.StartsWith("Ambiante"))
                    {
                        MajAmbiant(MdlBase, idLumiere, 0.85);
                    }
                    else if (nomLumiere.StartsWith("Directionnelle"))
                    {
                        var fl = MdlBase.eFonctionParLeNom(nomLumiere);
                        if (fl.IsRef())
                        {
                            fl.eModifierEtat(SolidWorks.Interop.swconst.swFeatureSuppressionAction_e.swSuppressFeature, lcfg);
                        }
                    }
                }

                MdlBase.GraphicsRedraw();
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
예제 #17
0
        public void Decaler(Face2 face, Double decal, Boolean inverser)
        {
            Loop2 bord = null;

            foreach (Loop2 loop in face.GetLoops())
            {
                if (loop.IsOuter())
                {
                    bord = loop;
                    break;
                }
            }

            var listeFace = new List <Face2>();

            foreach (Edge e in bord.GetEdges())
            {
                listeFace.Add(e.eAutreFace(face));
            }

            MdlBase.eEffacerSelection();

            foreach (var f in listeFace)
            {
                f.eSelectEntite(MdlBase, 1, true);
            }

            var feat = MdlBase.FeatureManager.InsertMoveFace3((int)swMoveFaceType_e.swMoveFaceTypeOffset, inverser, 0, decal, null, null, 0, 0);

            WindowLog.Ecrire("Décalage : " + feat.IsRef());
        }
예제 #18
0
        private ePoint CoordModele(int x, int y)
        {
            var vue = MdlBase.GetFirstModelView() as ModelView;

            var mt = vue.Transform;

            mt = mt.Inverse();

            double[] Xform  = new double[16];
            object   vXform = null;

            Xform[0]  = 1.0;
            Xform[1]  = 0.0;
            Xform[2]  = 0.0;
            Xform[3]  = 0.0;
            Xform[4]  = 1.0;
            Xform[5]  = 0.0;
            Xform[6]  = 0.0;
            Xform[7]  = 0.0;
            Xform[8]  = 1.0;
            Xform[9]  = x;
            Xform[10] = y;
            Xform[11] = 0.0;
            Xform[12] = 1.0;
            Xform[13] = 0.0;
            Xform[14] = 0.0;
            Xform[15] = 0.0;
            vXform    = Xform;

            var Point = (MathTransform)Mt.CreateTransform(vXform);

            Point = Point.Multiply(mt);

            return(new ePoint(Point.ArrayData[9], Point.ArrayData[10], 0));
        }
예제 #19
0
        protected void Rechercher_Infos()
        {
            WindowLog.Ecrire("Recherche des materiaux et epaisseurs ");

            ListeCorps     = MdlBase.pChargerNomenclature(eTypeCorps.Barre);
            ListeMateriaux = new List <String>();
            ListeProfil    = new List <String>();
            Campagne       = 1;

            foreach (var corps in ListeCorps.Values)
            {
                Campagne = Math.Max(Campagne, corps.Campagne.Keys.Max());

                ListeMateriaux.AddIfNotExist(corps.Materiau);
                ListeProfil.AddIfNotExist(corps.Dimension);
            }

            WindowLog.SautDeLigne();

            ListeMateriaux.Sort(new WindowsStringComparer());
            ListeProfil.Sort(new WindowsStringComparer());

            _TextBox_Campagne.Text = Campagne.ToString();

            _TextListBox_Materiaux.Liste = ListeMateriaux;
            _TextListBox_Materiaux.ToutSelectionner(false);

            _TextListBox_Profils.Liste = ListeProfil;
            _TextListBox_Profils.ToutSelectionner(false);
        }
예제 #20
0
        public PageInsererNote()
        {
            try
            {
                LigneAttache    = _Config.AjouterParam("LigneAttache", true, "Ligne d'attache");
                ModifierHtTexte = _Config.AjouterParam("ModifierHtTexte", true, "Modifier la ht du texte");
                HtTexte         = _Config.AjouterParam("HtTexte", 7, "Ht du texte en mm", "Ht du texte en mm");

                Reperage         = _Config.AjouterParam("Reperage", true, "Reperage");
                AfficherQuantite = _Config.AjouterParam("AfficherQuantite", true, "Ajouter la quantité");

                Description         = _Config.AjouterParam("Description", true, "Description");
                PrefixeTole         = _Config.AjouterParam("PrefixeTole", true, "Prefixe tole");
                AjouterMateriau     = _Config.AjouterParam("AjouterMateriau", true, "Ajouter le matériau");
                ProfilCourt         = _Config.AjouterParam("ProfilCourt", true, "Nom de profil court");
                SautDeLigneMateriau = _Config.AjouterParam("SautDeLigneMateriau", false, "Saut de ligne matériau");

                Dessin = MdlBase.eDrawingDoc();
                Mt     = (MathUtility)App.Sw.GetMathUtility();

                ListeCorps = MdlBase.pChargerNomenclature();
                InitSouris();

                OnCalque        += Calque;
                OnRunAfterClose += RunAfterClose;
            }
            catch (Exception e)
            { this.LogMethode(new Object[] { e }); }
        }
예제 #21
0
        private void SelectionChanged(Object sender, int Item)
        {
            var listeElements = Bdd.ListeCorps(Item);

            var listeCorps = new List <Body2>();

            foreach (var element in listeElements)
            {
                if (element.Composant.IsHidden(false) && !ListeHiddenComposants.Contains(element.Composant.eKeyAvecConfig()))
                {
                    element.Composant.eSelectById(MdlBase, 16, true);
                    element.Composant.eDeSelectById(MdlBase);
                    ListeHiddenComposants.Add(element.Composant.eKeyAvecConfig());
                }

                //WindowLog.EcrireF("{0} {1}", element.Composant.Name2, element.Corps.Name);
                var corps = element.Composant.eChercherCorps(element.Corps.Name, false);
                if (corps.IsNull())
                {
                    continue;
                }

                listeCorps.Add(corps);
            }

            ExitIsoler();

            MdlBase.eSelectMulti(listeCorps, _Select_Selection.Marque, false);
        }
        protected override void Command()
        {
            try
            {
                var dessin  = MdlBase.eDrawingDoc();
                var feuille = dessin.eFeuilleActive();;

                dessin.ActivateSheet(feuille.GetName());
                WindowLog.Ecrire("  - " + feuille.GetName());
                feuille.eAjusterAutourDesVues();
                MdlBase.eZoomEtendu();

                //dessin.eParcourirLesFeuilles(
                //    f =>
                //    {
                //        dessin.ActivateSheet(f.GetName());
                //        WindowLog.Ecrire("  - " + f.GetName());
                //        f.eAjusterAutourDesVues();
                //        MdlBase.eZoomEtendu();
                //        return false;
                //    }
                //    );
            }
            catch (Exception e)
            {
                this.LogErreur(new Object[] { e });
            }
        }
예제 #23
0
        private void IsolerComposants()
        {
            List <Component2> ListeCompBase = MdlBase.eSelect_RecupererListeObjets <Component2>(_Select_Configs.Marque);

            MdlBase.eAssemblyDoc().Isolate();

            MdlBase.eSelectMulti(ListeCompBase, _Select_Configs.Marque, false);
        }
예제 #24
0
        protected void SvgNomFonction(Object SelBox, Parametre Param)
        {
            Feature F = MdlBase.eSelect_RecupererObjet <Feature>(1, ((CtrlSelectionBox)SelBox).Marque);

            if (F.IsRef() && _CheckBox_EnregistrerSelection.IsChecked)
            {
                Param.SetValeur(F.Name);
            }
        }
예제 #25
0
        public PageCreerSymetrie()
        {
            PlanSymetrie = _Config.AjouterParam("PlanSymetrie", "Plan de droite", "Selectionnez le plan de symetrie :");
            Piece        = MdlBase.ePartDoc();

            OnCalque             += Calque;
            OnRunAfterActivation += PreSelection;
            OnRunOkCommand       += RunOkCommand;
        }
예제 #26
0
        protected void SvgNomComposant(Object SelBox, Parametre Param)
        {
            Component2 Cp = MdlBase.eSelect_RecupererComposant(1, ((CtrlSelectionBox)SelBox).Marque);

            if (Cp.IsRef() && _CheckBox_EnregistrerSelection.IsChecked)
            {
                Param.SetValeur(Cp.eNomSansExt());
            }
        }
예제 #27
0
 private void ChargerCorps()
 {
     foreach (var comp in MdlBase.eComposantRacine().eRecListeComposant(c => { return(c.TypeDoc() == eTypeDoc.Piece); }))
     {
         foreach (var Corps in comp.eListeCorps())
         {
             ListeSwCorps.Add(new SwCorps(comp, Corps, Corps.eGetMateriauCorpsOuComp(comp)));
         }
     }
 }
예제 #28
0
            private String Quantite()
            {
                CustomPropertyManager PM = MdlBase.Extension.get_CustomPropertyManager("");

                if (MdlBase.ePropExiste(PropQuantite.GetValeur <String>()))
                {
                    return(Math.Max(MdlBase.eGetProp(PropQuantite.GetValeur <String>()).eToInteger(), 1).ToString());
                }

                return("1");
            }
예제 #29
0
        private void Rechercher_Reperes()
        {
            Bdd = new BDD();

            Predicate <Component2> Test = c =>
            {
                if (c.ExcludeFromBOM)
                {
                    return(false);
                }

                bool filtre = false;

                if (_CheckBox_ComposantsCache.IsChecked)
                {
                    filtre = c.IsSuppressed();
                }
                else
                {
                    filtre = c.IsHidden(true);
                }

                if (!filtre && (c.TypeDoc() == eTypeDoc.Piece))
                {
                    ModelDoc2 mdl = c.eModelDoc2();
                    mdl.eActiver(swRebuildOnActivation_e.swRebuildActiveDoc);
                    mdl.ShowConfiguration2(c.eNomConfiguration());
                    mdl.EditRebuild3();
                    PartDoc piece = mdl.ePartDoc();

                    foreach (var dossier in piece.eListeDesDossiersDePiecesSoudees(d => { return(!d.eEstExclu()); }))
                    {
                        Bdd.AjouterDossier(dossier, c);
                    }
                }

                return(false);
            };

            if (MdlBase.TypeDoc() == eTypeDoc.Piece)
            {
                Test(MdlBase.eComposantRacine());
            }
            else
            {
                MdlBase.eRecParcourirComposants(Test, c => { if (c.ExcludeFromBOM)
                                                             {
                                                                 return(false);
                                                             }
                                                             return(true); });
            }

            MdlBase.eActiver();
        }
예제 #30
0
        private void ExitIsoler()
        {
            if (MdlBase.TypeDoc() != eTypeDoc.Assemblage)
            {
                return;
            }

            MdlBase.eAssemblyDoc().ExitIsolate();
            _Button_IsolerComposants.Caption = "Isoler les composants";
            Isoler = false;
        }