Aller au contenu

PhilBat

Membres
  • Compteur de contenus

    108
  • Inscription

  • Dernière visite

Tout ce qui a été posté par PhilBat

  1. 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.
  2. Merci pour vos réponses, :D il me reste a adapter vos idées en fonction de mes besoins...
  3. 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.
  4. 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.
  5. 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
  6. 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
  7. 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
  8. 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+
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. Merci Maître :(rires forts):
  17. 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 ?
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité