Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous,

 

En voulant cloner un WBlock il me bloque sur cette la ligne:

    MyDb.ReadDwgFile(FromFile, IO.FileShare.Read, True, "")

Ma commande d’appelle :

  _
Public sub CPB()
       CopieBlock("C:\DimStyles\Les Blocks.dwg", "Block 1")
   End Sub

Mon programme :

 

 Public Function CopieBlock(ByVal FromFile As String, ByVal BlockName As String)
       Dim MyDWG As Autodesk.AutoCAD.ApplicationServices.Document
       MyDWG = Application.DocumentManager.MdiActiveDocument
       Dim MyDb As Autodesk.AutoCAD.DatabaseServices.Database
       MyDb = MyDWG.Database
       Using LockDoc As DocumentLock = MyDWG.LockDocument()
           Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction
               MyDb.ReadDwgFile(FromFile, IO.FileShare.Read, True, "")
               Dim YourBlockT As Autodesk.AutoCAD.DatabaseServices.BlockTable
               Dim YourBlockTR As Autodesk.AutoCAD.DatabaseServices.BlockTableRecord
               YourBlockT = MyDb.BlockTableId.GetObject(Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
               YourBlockTR = YourBlockT(BlockName).GetObject(Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
               Dim myBlockT As Autodesk.AutoCAD.DatabaseServices.BlockTable
               myBlockT = MyDb.BlockTableId.GetObject(Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
               Dim myMap As New Autodesk.AutoCAD.DatabaseServices.IdMapping
               Dim myObjs As New Autodesk.AutoCAD.DatabaseServices.ObjectIdCollection
               myObjs.Add(YourBlockTR.ObjectId)
               MyDb.WblockCloneObjects(myObjs, myBlockT.ObjectId, myMap, _
               Autodesk.AutoCAD.DatabaseServices.DuplicateRecordCloning.Replace, False)
               MyTrans.Commit()
           End Using
       End Using
   End Function

 

Je ne sais la raison,(pour moi il n’y a pas l’air d’avoir un probleme)

[Edité le 16/2/2010 par sam-123]

 

[Edité le 16/2/2010 par sam-123]

Posté(e)

Salut,

 

Avant d'aller plus loin, ton code est très (trop) pénible à lire, il y a une douzaine de :

Autodesk.AutoCAD.DatabaseServices

Encore une fois, si au début du code, tu fait :

Imports Autodesk.AutoCAD.DatabaseServices

Tu n'auras plus besoin de le répéter sans cesse dans le code et j'arriverais peut-être à le lire...

Et peut être qu'ainsi tu t'emmêleras moins les pinceaux entre les Databses que tu veux manipuler...

 

 

Pour l'utilisation de WblockCloneObjects, voir AutoCAD .NET Developer's Guide > Create and Edit AutoCAD Entities > Edit Named and 2D Objects > Copy Objects > Copy Objects between Databases

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Question d’ordre de culture générale, on parcourant le site (AutoCAD .NET Developer's Guide)

J’ai remarqué qu’il n’y a rien sur les Insertion externes :

Exemple :

• Wblock

• Image

• Xref

• . . . .

. . . ?

 

Posté(e)

Voilà

A force de tourné, retourné, coupé . . .

Voilà a ce quoi je suis arrive

Hey, ca fonctionne ! :o

 

 Public Sub ImportDeBlock()
       Dim MyDWG As Autodesk.AutoCAD.ApplicationServices.Document
       MyDWG = Application.DocumentManager.MdiActiveDocument
       Dim MyDb As Autodesk.AutoCAD.DatabaseServices.Database
       MyDb = MyDWG.Database
       Using LockDoc As DocumentLock = MyDWG.LockDocument()
           Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction
               Dim MyDbSource As New Database
               MyDb = MyDWG.Database
               MyDbSource.ReadDwgFile("C:\Mes Blocks\Les Blocks.dwg", IO.FileShare.Read, True, "")
               MyDb.Insert("Block1.dwg", MyDbSource, True)
               MyDbSource.Dispose()
               MyTrans.Commit()
           End Using
       End Using
   End Sub

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é