Boris Dagnon Posté(e) le 12 janvier 2016 Posté(e) le 12 janvier 2016 En fait je pense s'avoir la ou ça coince. Lorsque que définit l'échelle de l'objet que je vais insérer dans mon plan, je remarque que la valeur renvoyé est égale à 0.Après analyse du code j'ai remarqué que la récupération de l'échelle ne s'effectuait pas correctement. public double RecupEchelle(AcadDocument doc) { object XDataType = new object(); //Instanciation d'un nouvel objet XDataType object XDataValue = new object();//Instanciation d'un nouvel objet XDataValue object[] objArray = new object[2];//Instanciation d'un nouveau tableau d'objet contenant 2 objets doc.Layers.Item((object) "JFC_EVAPORATEUR").GetXData("", out XDataType, out XDataValue); double resultat= Convert.ToDouble(((object[]) XDataValue)[1]); return resultat; } Ensuite après que la valeur de cette méthode soit renvoyé j'effectue le code suivant: try { for (int index = 0; index < 100; ++index) { numArray[index] = (short) 1000; /*On convertit en entier de 16 bits et on insére la valeur dans numArray[]*/ objArray2[index] = (object) 0; } this.acDoc.ActiveLayer = this.acDoc.Layers.Item((object) Layer); new GetPointCoord.GetPointCoord().GetPoint(this.acDoc, ref objArray1[0], ref objArray1[1]); //Valeur qu'on récupère après la définition de l'échelle------------------------------ double num1 = this.RecupEchelle(this.acDoc); double num2; double num3; switch (Orientation) { case "Verticale": num2 = num1 * Math.Sqrt((double) Puissance / 40000.0 + 0.2); num3 = 2.0 * num2; break; case "Horizontale": num3 = num1 * Math.Sqrt((double) Puissance / 40000.0 + 0.2); num2 = 2.0 * num3; break; default: num3 = num1 * Math.Sqrt((double) Puissance / 40000.0 + 0.2); num2 = 2.0 * num3; break; } double[] Point = new double[10] { (double) objArray1[0] - num2 / 2.0, (double) objArray1[1] + num3 / 2.0, (double) objArray1[0] + num2 / 2.0, (double) objArray1[1] + num3 / 2.0, (double) objArray1[0] + num2 / 2.0, (double) objArray1[1] - num3 / 2.0, (double) objArray1[0] - num2 / 2.0, (double) objArray1[1] - num3 / 2.0, (double) objArray1[0] - num2 / 2.0, (double) objArray1[1] + num3 / 2.0 }; AcadLWPolyline acadLwPolyline = this.acDoc.ModelSpace.AddLightWeightPolyline((object) Point); acadLwPolyline.Closed = true; if (Layer == "JFC_EVAPORATEUR" || Layer == "JFC_DOUBLE_EVAPORATEUR") this.Text(Point, Layer, Puissance); numArray[0] = (short) 1001; objArray2[0] = (object) "JFC_TRACEUR"; numArray[1] = (short) 1071; objArray2[1] = (object) Puissance; numArray[2] = (short) 1071; objArray2[2] = (object) nbC; int index1 = 0; int index2 = 3; while (index2 <= nbC + 4) { numArray[index2] = (short) 1070; objArray2[index2] = (object) tab[index1].nb; numArray[index2 + 1] = (short) 1000; objArray2[index2 + 1] = (object) tab[index1].Type; numArray[index2 + 2] = (short) 1040; objArray2[index2 + 2] = (object) tab[index1].section; ++index1; index2 += 3; } acadLwPolyline.SetXData((object)numArray, (object)objArray2); }
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant