Aller au contenu

pat06

Membres
  • Compteur de contenus

    27
  • Inscription

  • Dernière visite

Contact Methods

  • Website URL
    http://

pat06's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. bonsoir Gile, Effectivement il fallait mettre True dans l'instruction. la database est certainement complétée avec autocad architecture par rapport à la database utilisée dans autocad. D'ou le fait de l'erreur sur des fichiers issus d'autocad sans cette base "étendue". merci beaucoup.
  2. Bonsoir, En fait, bazoul ce n'est pas exactement "db.Insunits = UnitsValue.Centimeters" qui me sert sur ce point. j'ai une tonne de fichiers dwg (12 000) dans le cadre de DOE fournis dans de mauvaises unités. Mais paradoxalement ces fichiers ont été travaillé à la bonne unité (centimètre) mais quand ont les ouvre, ils sont dans des unités "autres" millimètres - pouces - mètres... j'utilise déjà les variables comme "db.Measurement = MeasurementValue.Metric" pour passer en unité métrique et non en anglo-saxon. par contre, le besoin est de préciser également les plans au cm (commande -dwgunits) et là ça coince car cette variable autocad architecture ne semble pas fonctionner de la même manière. sauf en lançant la commande créé en direct. mais compte tenu du nombre de fichiers, mon objectif est de faire un traitement par la "db" de ces fichiers... pour en revenir à l'erreur... j'ai essayé de mettre des points d'arrêt en mode débug mais cela n'a rien donné je vais donc essayer la piste des messages dans les catch merci
  3. Bonjour, la commande "directe" avec le fichier en cours fonctionne parfaitement bien : les unités sont recalées au cm... par contre lorsque je lance l'équivalent sur un répertoire il ne se passe rien. il semble que ça bloque à ce niveau : -> Dim dsv As DrawingSetupVariables = tr.GetObject(objID, OpenMode.ForWrite) en supprimant try ... ça m'éjecte d'autocad... merci
  4. Bonjour, je souhaite appliquer une commande développée en vb net pour un ensemble de fichiers dans un répertoire , mais il semble que cela ne soit pas si simple... si quelqu'un pouvait m'aiguiller... le but de cette commande est de forcer les unités des dwg au centimètre. j'utilise aecbaseMgd.dll dans ce projet. 'commande sur le fichier courant : <CommandMethod("CH_CENTIMETRES")> _ Public Sub CH_CENTIMETRES() Dim dwg As Document = Application.DocumentManager.MdiActiveDocument Dim db As Database = dwg.Database Using tr As Transaction = db.TransactionManager.StartTransaction Dim objID As ObjectId = DrawingSetupVariables.GetInstance(db, False) Dim dsv As DrawingSetupVariables = tr.GetObject(objID, OpenMode.ForWrite) Dim unite As String = dsv.LinearUnit.ToString dsv.LinearUnit = Autodesk.Aec.BuiltInUnit.Centimeter Dim echelle As String = dsv.DwgScale.ToString tr.Commit() End Using End Sub ' commande portée pour traitement sur répertoire : Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click Dim dir As String = "C:\plans" For Each fichier As String In System.IO.Directory.GetFiles(dir, "*.dwg", SearchOption.AllDirectories) Using db As Database = New Database(False, True) Try db.ReadDwgFile(fichier, FileShare.ReadWrite, True, vbNullString) Using tr As Transaction = db.TransactionManager.StartTransaction Dim objID As ObjectId = DrawingSetupVariables.GetInstance(db, False) Dim dsv As DrawingSetupVariables = tr.GetObject(objID, OpenMode.ForWrite) Dim unite As String = dsv.LinearUnit.ToString dsv.LinearUnit = Autodesk.Aec.BuiltInUnit.Centimeter Dim echelle As String = dsv.DwgScale.ToString tr.Commit() End Using db.SaveAs(fichier, DwgVersion.Current) Catch ex As Exception End Try End Using Next MsgBox("Traitement terminé") End Sub Merci d'avance
  5. pat06

    ouvrir fichier en VBN.ET

    comment faut-il indiquer que ce sujet est résolu ? merci
  6. pat06

    ouvrir fichier en VBN.ET

    Un grand merci... finalement j'ai remplacé le code d'appel à la form par "dlg.ShowDialog()" et tout fonctionne parfaitement ... voici le code modifié dans la class : <CommandMethod("CHARTE")> _ Public Sub CHARTE() Dim ed As Editor = Application. _ DocumentManager. _ MdiActiveDocument. _ Editor Using dlg As New EXPLO() dlg.ShowDialog() End Using End Sub
  7. pat06

    ouvrir fichier en VBN.ET

    voici le code utilisé dans le fichier class : Imports System.IO Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.EditorInput Public Class Class1 <CommandMethod("CHARTE")> _ Public Sub CHARTE() Dim ed As Editor = Application. _ DocumentManager. _ MdiActiveDocument. _ Editor Using dlg As New EXPLO() Application.ShowModalDialog(dlg) End Using End Sub End Class Effectivement ShowModalDialog fait référence à un affichage modal... mais par quoi le remplacer ? le but étant d'ouvrir "EXPLO" lors de l'appel à la commande "charte" EXPLO étant mon fichier Form du projet. merci
  8. pat06

    ouvrir fichier en VBN.ET

    Bonjour Bazoul, j'ai changé le code proposé par : Dim strFileName As String = IO.Path.Combine(DirListBox1.Path, FileListBox1.Text) et j'ai le même message d'erreur : Consultez la fin de ce message pour plus de détails sur l'appel du débogage juste-à-temps (JIT) à la place de cette boîte de dialogue. ************** Texte de l'exception ************** System.Runtime.InteropServices.COMException (0x802000C8): Contexte d'exécution incorrect à System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) à Autodesk.AutoCAD.ApplicationServices.DocumentCollection.Open(String fileName, Boolean forReadOnly, String password) à test1_plugin_autocad.EXPLO.ButtonAutoCAD_Click(Object sender, EventArgs e) dans C:\_VB NET\CHARTE GRAPHIQUE 2012\plugin autocad\EXPLO.vb:ligne 95 à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) à System.Windows.Forms.Control.WndProc(Message& m) à System.Windows.Forms.ButtonBase.WndProc(Message& m) à System.Windows.Forms.Button.WndProc(Message& m) à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) j'utilise une windowsForm pour sélectionner le fichier dwg par "décodage". Ce traitement est nécessaire car les fichiers dwg sont codés (dans leur nom) suivant une charte graphique. merci
  9. pat06

    ouvrir fichier en VBN.ET

    Bonjour, merci pour ta réponse (si rapide) c'est effectivement pour ouvrir le fichier dans l'éditeur. j'ai du mal à appliquer la méthode proposée : mon projet VB est constitué d'un fichier de class dans lequel j'ai défini une commande permettant d'ouvrir une boite de dialogue dans laquelle le sélection le fichier dwg à ouvrir. dans lequel j'ai inséré le code : Dim strFileName As String = DirListBox1.Path & "\" & FileListBox1.Text Dim acDocMgr As DocumentCollection = Application.DocumentManager If (File.Exists(strFileName)) Then acDocMgr.Open(strFileName, False) Else acDocMgr.MdiActiveDocument.Editor.WriteMessage("File " & strFileName & _ " does not exist.") End If lors de l'exécution, j'ai un message d'erreur... par contre, en insérant le code suivant dans le fichier class ; il ouvre bien le fichier désigné lors de la commande OpenD : Public Sub OpenD() Dim strFileName As String = "C:\TEST\TEST.dwg" ' Dim strFileName As String = EXPLO.ControlCollection.Equals() Dim acDocMgr As DocumentCollection = Application.DocumentManager If (File.Exists(strFileName)) Then acDocMgr.Open(strFileName, False) Else acDocMgr.MdiActiveDocument.Editor.WriteMessage("File " & strFileName & _ " does not exist.") End If si tu as une idée ? merci d'avance
  10. Bonjour, j'aurais besoin d'un p'tit coup de main... j'ai créer un .dll sous VB.NET 2010 ce programme en lancé sous autocad via "netload" et doit permettre d'ouvrir un fichier dwg sélectionné. il me manque juste la méthode permettant d'ouvrir ledit fichier... si quelqu'un pouvait m'aider ? merci d'avance
  11. Bonsoir, j'avais également ce pb, corrigé en gérant la mémoire par le PC et non par le périphérique... (dans le paramètres avancés). la mise à jour du firmware a apporté d'autres plantages par contre. Du coup on a ajouté une carte mémoire dans le traceur et depuis plus de pb. Amicalement
  12. pat06

    Outil de vérification

    Bonsoir, Il n'y a pas de manip à proprement parler.... j'utilise une fonction de création de fichiers dans dxconvert des calques sélectionnés... de ce fait on obtient un fichier avec par exemple un calque "exporté" Par contre, avec AutoCAD 2011, tu as une commande : SELECTSIMILAR qui te permet de sélectionner par exemple tous les mêmes blocs et donc éventuellement de les mettre sur le même calque en une seule commande (avec les propriétés). nota : j'utilise en fait cette fonction avec autocad architecture depuis pas mal de version (2008 je pense) je ne sais pas à partir de quelle version d'autocad elle est dispo... sinon, pour les fichiers avec de multiples objets et plein de calques, j'utilise plantracer pour autocad qui recrée des blocs par reconnaissance. et cela sur les bons calques... Amicalement [Edité le 9/12/2010 par pat06]
  13. pat06

    Outil de vérification

    Bonjour, j'utilise couramment dxconvert... Il ne permet pas malheureusement de vérifier si les objets sont dans les bons calques. par contre il a tout un tas d'autres outils très intéressants notamment au niveau des blocs (miroités, forçage de calques, respect de normes de calques, diagnostics sur l'état du dwg, traitements en séries,etc...) Amicalement
  14. pat06

    Modification taille objets

    Bonjour, tu parles de quels types d'objets 3D ? si ce sont les objets MEP : tu fais un clic droit : "modifier la pièce à vues multiples" celà te permet de changer certains paramètres suivant l'objet que tu as inséré... sinon ; pour éviter de "bloquer" il y a des tutos sur le site d'autodesk (rubrique support) crdlt
  15. Bonjour, et merci beaucoup pour ton lisp.. tout à fait ce qu'il me fallait. Bien amicalement.
×
×
  • 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é