¿Cómo insertar bloques dwg en gráficos CAD usando la programación vb.net?
Dim?ppr?As?PromptPointResult?=?ed.GetPoint("Seleccione el punto de inserción:")
Dim?pt?As?Point3d?=?ppr.Value
utility.WriteToEditor(pt.ToString())
Dim?pidBlock?As?New?PIDBlock()
'Clase de bloque autodefinida, guardar ¿La ruta y el nombre del bloque?
pidBlock.Name?=?"sample"
pidBlock.Path?=?blockPath?&?"b_sample.dwg"
Usando?blkDb?As?New?Database(False,?True)
'¿leer?dibujo?
blkDb.ReadDwgFile(pidBlock.Path,?System.IO. FileShare .Read,?True,?Nothing)
blkDb.CloseInput(True)
Usando?docLock?As?DocumentLock?=?doc.LockDocument()
'¿Debe hacer esto primero para varios documentos; de lo contrario, se informará un error de comando?
Usando?t?As?Transaction?=?doc.TransactionManager.StartTransaction()
'¿insertar?it?como?un?nuevo?bloque?
Dim?idBTR?As?ObjectId?=?doc.Database.Insert(pidBlock.Name,?blkDb,?False)
'crear ?una?ref?para?el?bloque?
Dim?bt?As?BlockTable?=?DirectCast(t.GetObject(doc.Database.BlockTableId,?OpenMode.ForRead ),?BlockTable)
Dim?btr?As?BlockTableRecord?=?DirectCast(t.GetObject(bt(BlockTableRecord.ModelSpace),?OpenMode.ForWrite),?BlockTableRecord)
Usando?bref?As ?New?BlockReference(pt,?idBTR)
btr.AppendEntity(bref)
t.AddNewlyCreatedDBObject(bref,?True)
¿Finalizar?Usando
t.Commit()
¿Finalizar?Usar
¿Finalizar?Usar
Finalizar?Usar