samideqlqpart
Membres-
Compteur de contenus
26 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par samideqlqpart
-
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
salutbref,net et precis merci à+ -
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Faut il pour une question de gain de temps et d'espace mémoire declarer les variables en locales ou globales C'est à dire que l'espace memoire reservé à la variable "x" n'est crée qu'au moment de l'appel du code par le compilateur ou tout simplement la declarer en globale et l'espace memoire est reservé à cette variable pour tout le projet (même variable x) exemple Local: private void btnR1_Click(object sender, EventArgs e) { int x } private void btnR2_Click(object sender, EventArgs e) { int x } Global: int x private void btnR1_Click(object sender, EventArgs e) { } private void btnR2_Click(object sender, EventArgs e) { } -
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
1/j'ai compris que la declaration de type implicite var n'est valable que pour les variables locales? 2/ c'est à dire? -
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Toujours sur le même exemple Pourquoi avoir ecris // création d'une instance de ModelessDialog var dialog = new ModelessDialog(); et non pas ModelessDialog dialog = new ModelessDialog(); vu qu'il s'agit d'une boite de dialogue? pkoi var -
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Que signifie: [assembly: CommandClass(typeof(AcadUISample.ModalDialog.Commands))] code que j'ai trouvé sur "gileCAD" "Les interfaces utilisateur avec AutoCAD .NET" merci -
Code ne génerant pas de DLL
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Very big erreur de ma part merci je suis parti de consoleApplication au lieu de classlibrary using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; namespace AddlightPolyline { public class Class1 { [CommandMethod("AddLightweightPolyline")] public static void AddLightweightPolyline() { // Get the current document and database Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; // Start a transaction using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { // Open the Block table for read BlockTable acBlkTbl; acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable; // Open the Block table record Model space for write BlockTableRecord acBlkTblRec; acBlkTblRec = acTrans.GetObject(acBlkTbl[blockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // Create a polyline with two segments (3 points) Polyline acPoly = new Polyline(); acPoly.SetDatabaseDefaults(); acPoly.AddVertexAt(0, new Point2d(2, 4), 0, 0, 0); acPoly.AddVertexAt(1, new Point2d(4, 2), 0, 0, 0); acPoly.AddVertexAt(2, new Point2d(6, 4), 0, 0, 0); // Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acPoly); acTrans.AddNewlyCreatedDBObject(acPoly, true); // Save the new object to the database acTrans.Commit(); } } } } -
Bonjour A titre d'exemple pour commencer mon apprentissage sur c# j'ai repris le code pour le tracage de polyline sur "AutoCad .Net developers guide" AddLightweightPolyline 1. Seulement ne génère pas de DLL pour etre appelé par Netload? 2. A l'execution du code j'ai ce qui suit: Error 1 Program 'c:\Users\home\Documents\Visual Studio 2013\Projects\lightpoly\lightpoly\obj\Debug\lightpoly.exe' does not contain a static 'Main' method suitable for an entry point C:\Users\home\Documents\Visual Studio 2013\Projects\lightpoly\lightpoly\CSC lightpoly à moins que j'ajoute pour que l'erreur disparaisse static void Main(string[] args) { } Voici le code, est ce que c'est une ecriture juste? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; namespace lightpoly { class Program { static void Main(string[] args) { } [CommandMethod("AddLightweightPolyline")] public static void AddLightweightPolyline() { // Get the current document and database Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; // Start a transaction using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { // Open the Block table for read BlockTable acBlkTbl; acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable; // Open the Block table record Model space for write BlockTableRecord acBlkTblRec; acBlkTblRec = acTrans.GetObject(acBlkTbl[blockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // Create a polyline with two segments (3 points) Polyline acPoly = new Polyline(); acPoly.SetDatabaseDefaults(); acPoly.AddVertexAt(0, new Point2d(2, 4), 0, 0, 0); acPoly.AddVertexAt(1, new Point2d(4, 2), 0, 0, 0); acPoly.AddVertexAt(2, new Point2d(6, 4), 0, 0, 0); // Add the new object to the block table record and the transaction acBlkTblRec.AppendEntity(acPoly); acTrans.AddNewlyCreatedDBObject(acPoly, true); // Save the new object to the database acTrans.Commit(); } } } }
-
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Salut! c'est ce que je vais faire, dommage pour ce temps passé sur vb.net. ça me fait un deuxieme langage à connaître ,heureusement que je ne pars pas dans un terrain inconnu merci pour tout en cas de difficulté je vous ferai appel. -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour tout est ok! je suis parti des 5 secondes à environ 2 secondes et celà à la prelmère utilisation d'autocad et aux utisations suivantes à environ 100 ms Je trouve que c'est un gain de temps considerable. Une autre question, n'est il pas plus utile que je converti le tout à C#? peut etre que je gagnerai plus de temps, vu la difference de compilation entre les langages? merci -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
vstudio ne semble pas me donner la main. même si je desactive l'option ça reste souligné en rouge "there were build error.would....." patience! -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour c'est des choses que j'ignorai même dans les cours d'apprentissage je ne suis pas tomber sur ce focus"activation de Option Strict" sinon pourquoi perdre du temps car je suis toujours en train de faire les rectifications. j'apprends toiujours ! et je paie de mon ignorance. merci, je vous aviserai une fois terminer -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
et vogue la galère! -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Exactement c'est tout rouge, dépasse 102 err genre, Option Strict On disallows implicit conversions from 'Autodesk.AutoCAD.DatabaseServices.DBObject' to 'Autodesk.AutoCAD.DatabaseServices.BlockTableRecord'. Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity. If ComboBox1.SelectedItem = "PotRive 1 " Then.. Option Strict On disallows implicit conversions from 'Object' to 'Integer'.... Arm(i) = DiamCoin2.SelectedItem replace with CInt(DiamCoin2.SelectedItem). la liste est longue -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour j'ai Option Strict = Off je vais lire attentivement l'article Merci -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
par contre l'utilisation de la liaison tardive (implicite avec Object en VB si l'option strict est désactivée) peut considérablement ralentir l'exécution. c'est à dire? -
Appel de fonction trop long
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour C'est exactement le cas; le temps est notablement réduit pour les exécutions suivantes(de l'ordre de 30milisec) et à la première exécution il est aux environ de 5sec, c'est à dire à la première exécution d'AutoCAD. Donc dois'je optimiser mon code,peut etre que le problème est là? car dans l'ecriture de mon code je fais appel à d'autres codes! ce qui ralentit l'exécution peut être dans la declaration des codes : publique/privée et comme vous l'avez mentionner c'est à la première exécution d'AutoCAD! Merci pour l'attention. -
bonjour je suis arrivé à ce point avec l'utilsation de stopwatch un phenomène! la durée totale est de 4823msecondes sw.Start() armature(acBlkTblRec, acCurDb, acTrans, New Point3d(origTextX, origTextY, 0)) sw.Stop() total = sw.ElapsedMilliseconds Dim ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor ed.WriteMessage(vbLf & "Durée totale: " & total & "millisecondes") Mais en exécutant stopwatch à l'interieur de ma fonction, la durée totale est de 25 msecondes Public Sub armature(ByRef acBlkTblRec As BlockTableRecord, ByRef acCurDb As Database, ByRef acTrans As Transaction, _ ByVal origTEXT As Point3d) sw.Start() -... -.. - - sw.Stop() total = sw.ElapsedMilliseconds Dim ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor ed.WriteMessage(vbLf & "Durée totale: " & total & "millisecondes") End Sub Ou est le problème?
-
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
bonjour je suis arrivé à ce point avec l'utilsation de stopwatch un phenomène! la durée totale est de 4823msecondes sw.Start() armature(acBlkTblRec, acCurDb, acTrans, New Point3d(origTextX, origTextY, 0)) sw.Stop() total = sw.ElapsedMilliseconds Dim ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor ed.WriteMessage(vbLf & "Durée totale: " & total & "millisecondes") Mais en exécutant stopwatch à l'interieur de ma fonction, la durée totale est de 25 msecondes Public Sub armature(ByRef acBlkTblRec As BlockTableRecord, ByRef acCurDb As Database, ByRef acTrans As Transaction, _ ByVal origTEXT As Point3d) sw.Start() - - - - sw.Stop() total = sw.ElapsedMilliseconds Dim ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor ed.WriteMessage(vbLf & "Durée totale: " & total & "millisecondes") End Sub Ou est le problème? -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, idem même avec QueueForGraphicsFlush sur chaque entité ajoutée le dessin s'affiche en entier apres un temps d'attente. par contre j'ai trouvé quelque chose d'interessant fait par Norman Yuan "Showing Progress for long code execution in AutoCAD" sur Drive AutoCAD with Code mais un peu compliqué; qui répond peut être à ma question? -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
c'est à dire, après chaque entité créée Dim tr As Transaction = db.TransactionManager.StartTransaction() Using tr 1ere entité....... tr.AddNewlyCreatedDBObject tr.Commit() End Using Dim tr As Transaction = db.TransactionManager.StartTransaction() Using tr 2eme entite ....... tr.AddNewlyCreatedDBObject tr.Commit() End Using -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
oui c'et bien ça je pense avoir donner des precision précedemment. et je pense que vous avez decélé mon obstacle, d'ailleurs un peu plus haut vous aviez bien mentionner; <br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);">Dans tous les cas, d'après ce que tu décris "l'attente" devrait démarrer au moment où l'utilisateur spécifie le point d'insertion et se terminer quand le code finit de dessiner la dernière entité. en ce qui concerne le programme j'avais ecris: c'est une application qui se charge de dessiner des poteaux de batiment. je charge mon application avec NETLOAD. il ya là une interface qui me demande d'introduire les données tels que;hauteur de poteau, largeur, hauteur d'etage , etc... Une fois les données introduites je lance l'exécution.<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);">maintenant je precise un point d'insertion sur autocad.<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);">et me voilà attendre l'affichage du poteau qui met un bon bout de temps pour apparaitre!<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);">ok je relance l'application ,introduction de données,...<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);">l'affichage du dessin maintenant est plus rapide !<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19.5px; background-color: rgb(250, 251, 252);"> Maintenant, mais normalement quand on ajoute des entités dans AutoCAD, il apparaissent quand on appelle Commit() sur la Transaction qui a servi à ajouter ces objets. Peut etre ce temps d'attente est dù à ça car j'ai une seule transaction pour l'ensemble des codes, d'ou un seul Commit()????????? j'aurais peut être dù metrre plusieurs transaction? merci pour la perseverance. -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour J'ai un peu réduit le temps d'impression grace à Stopwatch j'ai trouve que l'utilsation de la condition Case est mieux adaptée que If...then .successifs dont j'abuse. par contre j'insiste toujours comment indexer l'apparition du dessin après getpoint ..? Merci. -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
salut je cravache,je trécuche, je me relève et j'avance pas! je pense devoir revoir quelque chose dans mes codes et procédures. j'ai trouvé à des endroits je passe 5700 ms de la première exécution à 110 ms en moyenne sur les suivantes. seulement je reviens toujours à la question: Comment specifier la fin de l'exécution des codes? -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
salut! j'ai vainement essayer une instance de StopWatch mais rien eu. Seulement maintenant, ce que je cherche exactement comme tu l'as remarquer; comment savoir quand le code finit de dessiner la dernière entité.? car à mon niveau entre la première et dernière entité c'est du "nanoseconde"le dessin s'affiche en entier en une fraction de seconde et à partir de la je peux peut etre mettre un message d'attente qui doit disparaitre dès que le dessin est affiché. En ce qui concerne les calques, styles de textes , de cotes, etc... le code est etabli d'une manière tel qu'il s'assure d'abord si le calque existe sinon il en crée un. voici à titre d'exemple un code pour le style de textes et c'est la même procédure pour les calques , cotation crées un à un, peut etre le problème est ici, car pour une dizaine de layer........ Dim acTextTbl As TextStyleTable acTextTbl = acTrans.GetObject(acCurDb.TextStyleTableId, _ OpenMode.ForRead) Dim Texttitre As String = "Text titre" If acTextTbl.Has(Texttitre) = False Then Dim acTextTblRec As TextStyleTableRecord = New TextStyleTableRecord() acTextTblRec.Name = Texttitre acTextTblRec.TextSize = 40 acTextTblRec.XScale = 1.5 acTextTblRec.FileName = "Consolas.shx" acTextTbl.UpgradeOpen() acTextTbl.Add(acTextTblRec) acTrans.AddNewlyCreatedDBObject(acTextTblRec, True) End If -
comment matérialiser l'apparition d'un dessin
samideqlqpart a répondu à un(e) sujet de samideqlqpart dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, j'arrive pas à attacher les fichiers ....Le serveur a retourné une erreur durant l'envoi.... je vais etre plus explicite je suis sur autocad c'est une application qui se charge de dessiner des poteaux de batiment. je charge mon application avec NETLOAD. il ya là une interface qui me demande d'introduire les données tels que;hauteur de poteau, largeur, hauteur d'etage , etc... Une fois les données introduites je lance l'exécution. maintenant je precise un point d'insertion sur autocad. et me voilà attendre l'affichage du poteau qui met un bon bout de temps pour apparaitre! ok je relance l'application ,introduction de données,... l'affichage du dessin maintenant est plus rapide ! Comme dans le programme je charge des layers, des styles de cotation, styles de textes.... peut etre que ça met du temps pour les charger à la première exécution et après c'est ok? je n'utilise pas de bloc. Donc je cherche à combler ce temps d'attente par un message priant l'utilisateur de patienter et qui disparait à l'apparition du dessin ou une progressbar. comme je ne sais pas à quel moment il va apparaitre et voilà.
