PhilBat
Membres-
Compteur de contenus
108 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par PhilBat
-
Créer un installeur (MSI)
PhilBat a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, j'ai le cas d'une solution avec 61 projets et en deux versions x32 et x64. Créer un installeur dans ce cas de figure me semble moins évident. Avez-vous un exemple similaire ? Autre question, est-il possible de désactiver le chargement d'un bundle au lancement d'AutoCAD ? J'ai essayé de modifier la variable 'APPAUTOLOAD' avec la valeur '0', mais cela ne change rien. Merci d'avance. Philippe. -
Changement de présentation
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Merci pour vos réponses, :D il me reste a adapter vos idées en fonction de mes besoins... -
Bonjour à tous, avez-vous une solution pour détecter le changement de présentation dans un document AutoCAD possédant plusieurs onglets ? Merci d'avance... Philippe.
-
Bonjour à tous, je rencontre un problème assez bizarre dans la version autoCAD 2013 et non dans la 2016 : lors de l'insertion d'un bloc, cela me provoque une erreur (pas tous le temps) dans le sens qu'il ne trouve pas le fichier correspondant dans le disque dur et pour cause la variable 'string' contenant son nom change lors de l'appel de la commande Db.Insert(FileDwg, tmpDb, True) Voici le code : Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim ed As Editor = acDoc.Editor Dim Db As Database = acDoc.Database Dim FileTampons, FileDwg As String FileTampons = PathGpO & "\FOLIOS\" & MMono & ".DWG" FileDwg = MMono Using Tr As Transaction = Db.TransactionManager.StartTransaction Dim bt As BlockTable = DirectCast(Tr.GetObject(Db.BlockTableId, OpenMode.ForRead), BlockTable) If Not bt.Has(FileDwg) Then If IO.File.Exists(FileTampons) Then Dim tmpDb As New Database(False, True) 'tmpDb.ReadDwgFile(FileTampons, IO.FileShare.Read, True, Nothing) tmpDb.ReadDwgFile(FileTampons, FileOpenMode.OpenForReadAndAllShare, False, Nothing) Db.Insert(FileDwg, tmpDb, True) Else Throw New System.Exception(String.Format("File {0} is not found", FileTampons)) Tr.Abort() Return End If End If Dim currSpace As BlockTableRecord = CType(Tr.GetObject(Db.CurrentSpaceId, OpenMode.ForWrite), BlockTableRecord) Using br As New BlockReference(Point3d.Origin, bt(FileDwg)) br.ScaleFactors = New Scale3d(1.0#, 1.0#, 1.0#) br.Rotation = 0.0# 'br.Layer = "0" br.TransformBy(Matrix3d.Displacement(p3d - Point3d.Origin).PreMultiplyBy(ed.CurrentUserCoordinateSystem)) currSpace.AppendEntity(br) Tr.AddNewlyCreatedDBObject(br, True) br.ExplodeToOwnerSpace() br.Erase() End Using tr.commit() End Using Par exemple si la variable MMono = "FDP-toto" , la variable FileDwg se transforme en "GDP-toto" pour une raison inconnue et d'où le plantage d'autoCAD car ce fichier 'GDP-toto.dwg' n'existe pas. Un 'Try Catch' ne change rien. Sincères Salutations Philippe.
-
Bonjour, à partir d'une collection d'objets (des lignes pour mon cas), je voudrai un algorithme qui me trie celle-ci (ObjectIdCollection) de gauche à droite et de haut en bas. Merci d'avance Salutations
-
Gestion Espace de Travail
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Merci pour vos réponses. J'ai effectivement trouver des solutions suivant vos indications. je constate au passage la disparition des commandes suivantes "cuiunload" et "cuiload" peut etre sont-ils a remplacer par "dechargiuperso" et "chargiuperso" dans la version 2015 d'AutoCAD. Salutations voici un lien pour exemple EXEMPLE -
Bonjour à tous, Je voudrai savoir comment gérer les espaces de travail en c# ou vb net, (obtenir une liste des espaces, créer, supprimer, etc) dans AutoCAD. Sincère Salutations
-
Accès DWG sans AutoCAD
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Ok, mais je pensais plutôt à l'accessibilité du DWG par programmation via le vb net et non pas l'utilisation d'un quelconque autre programme. (le 'exe' est crée par mes soins sous Visual Studio) A+ -
Bonjour, est-il possible d'avoir accès à quelques données d'un fichier DWG sans lancer AutoCAD: c.a.d. depuis un fichier 'exe' (application windows forms), je voudrais par exemple : - connaître les noms des espaces papiers utilisés. - Voir les imprimantes enregistrées dans les mises en page. - Version d'AutoCAD lors de sa création. - avoir accès aux données 'xrecord' Merci Phil
-
Lancer AutoCAD depuis un EXE
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Est-il possible d'avoir accès au contenu du fichier dwg ainsi ouvert. il semble que l'utilisation de "Database" et "Transaction" provoque un plantage. A+ Phil -
Lancer AutoCAD depuis un EXE
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Ok merci pour la réponse AutoCAD se lance bien. Mais comment faire pour que autocad se lance avec un document déterminé à l'avance par mon fichier exe et attendre que celui soit chargé complètement avant de lancer des "sendcommand" dans ce dessin rendu courant. a+ Phil -
Bonjour à tous, Je désire concevoir une application windows forms en vb net qui pourra lancer autoCAD et executer des instructions. Le lien suivant semble se rapprocher de mes volontés mais cette "fonction" ne marche qu'en interne à AutoCAD (si je comprends bien) : Out-of-Process moi je veux la même chose mais externe au processus AutoCAD. Merci d'avance Phil
-
Bonjour, le mode ortho ne semble plus avoir d'effet sur ces simulations des commandes "copier" & "déplacer". Existe t-il un moyen de contrer ce problème ? peut être en imposant les coordonnées du point de destination (forcer uniquement des modifications de valeurs en X ou Y en fonction de la position du curseur). Merci a+ Phil
-
Merci pour cette aide précieuse Mais j'ai quelque souci quand le scu est personnalisé : l'apercu n'est pas au droit du curseur. Par contre quand le DWG utilise le SCG, cela marche parfaitement. A+ Phil
-
Bonjour, et bonne année à tous Malgré ma volonté d'apprendre. Je n'arrive pas à mettre en application l'exemple cité :unsure: plus haut pour redéfinir les commandes "déplacer" et "copier" surtout quand plusieurs entitées sont sélectionnées. Pouvez-vous m'aider ? Merci. Phil
-
Merci Maître :(rires forts):
-
Merci pour vos réponses. Je voudrais faire de même avec la commande "Déplacer" redéfinie, Est-ce la même démarche ?
-
Bonjour, Voulant redéfinir la commande "inserer" d'AutoCAD (defun et nondef en lisp) et en utilisant du vb net pour la commande, je n'ai plus l'aperçu du bloc au niveau du curseur au moment de la détermination du point d'insertion (GetPoint), y a t'il un moyen de contrer ce problème ? Merci A+ Phil
-
Bonjour, Depuis l'arrivé de AutoCAD 2013, j'ai souvent ce genre de message d'erreur lors du débogage : Aucune Source disponible Le thread actuel n'exécute pas de code ou la pile des appels n'a pas pu être obtenue... Si je fais "continuer" après ce message le programme fonctionne mais je n'ai plus d'accès au code pour faire mes tests. Il semble que le problème se produit lors de l'exécution de la commande suivante : Application.ShowModalDialog(WinDesign) dans le code : Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Public Class Designations <CommandMethod("Designations")> _ Public Sub Designations() Dim WinDesign As New frmDesignations() Application.ShowModalDialog(WinDesign) 'WinDesign.ShowDialog() End Sub End Class Ce problème n'existe pas quand ce même programme est exécuté en lançant AutoCAD 2011. Nota: "VS2012 express" ou "VS2010 express" ne change rien A+ Phil
-
Argument pour un dll
PhilBat a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour à tous Merci pour vos réponses Mais je suis un peu perdu. En attendant, j'ai adopté une solution simple mais efficace. Comme mon programme utilise un fichier pour s'initialiser, qui est d'ailleur ecrit en lisp. je l'exploite pour passer des données d'un dll à un autre. Je pensais qu'il était possible de lancer facilement une commande dll sous autocad avec passage d'arguments, mais je vois que non. A bientôt Phil -
Bonjour en lançant depuis autoCAD une commande compilée en dll exemple TOTO.dll suivant le code Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Namespace Toto Public Class Toto <CommandMethod("Toto")> _ Public Sub Toto() ..... End Sub End Class End Namespace je voudrais passer des arguments supplémentaires de type Boolean ou String depuis AutoCAD. Est ce possible et comment faire ? Merci Phil
-
Merci pour vos réponses Concernant la fonction IntersectWith, elle ne semble pas marcher pour la cas suivant : ligne A : startpoint 69.5,183 et endpoint 131.5,183 ligne B : startpoint 131.5,183 et endpoint 198,183 Si j'utilise le code suivant : Public Function CollPt3d_Intersection(db As Database, IdA As ObjectId, IdB As ObjectId) As Point3dCollection Dim pt As Point3d Dim CollPt3d As New Point3dCollection() Using tr As Transaction = db.TransactionManager.StartTransaction() Dim EntA As Entity = TryCast(tr.GetObject(IdA, OpenMode.ForRead), Entity) Dim EntB As Entity = TryCast(tr.GetObject(IdB, OpenMode.ForRead), Entity) 'Verifie si les 2 entitees s'intersectent EntA.IntersectWith(EntB, Autodesk.AutoCAD.DatabaseServices.Intersect.OnBothOperands, CollPt3d, IntPtr.Zero, IntPtr.Zero) ed.WriteMessage(vbLf & "Nombre d'intersection trouvé: " + CollPt3d.Count.ToString) tr.Commit() End Using Return CollPt3d End Function Le nombre d'intersection trouvé est 0 ce qui est dommage. Pour pallier à ceci, faire un teste des extrémités en complément est une solution. A+ Phil
-
Bonjour, comment détecter le point commun de deux lignes contigues et linéaires (sur un même plan et pas en 3D) la fonction "IntersectWith" ne semble pas fonctionner. Merci A+ Phil
-
bonjour à tous Comment remplir un combobox en utilisant la panoplie de couleurs d'AutoCAD afin de pouvoir modifier facilement la couleur d'un texte (par exemple). En VB net bien sûr. Merci d'avance Phil
-
Bonjour, étant concepteur de schéma électrique sur autoCAD je cherche une idée pour repérer des lignes dans des circuits de télécommande (en vb net): - mise en place d'un texte au dessus d'une ligne - possibilité de paramétrer la position du texte - incrémentation automatique (L01, L02 ...) - choix du type de ligne à repérer Le principe n'est pas nouveau, la plupart des logiciels spécialisés le font (genre Electrical Expert...) Merci pour vos idées a+ Phil
