插入块之后为什么不能用增强属性编辑器打开?
大侠们,我在代码中将一个外部DWG图纸的块插入到当前图纸中,但是插入之后再当前图纸中双击块是打开“编辑块定义”这个对话框,如何能让我双击之后打开的是“增强属性编辑器”这个对话框呢?PS:这个块是定义好属性的,打开外部DWG图纸就可以用 增强属性编辑器 打开
下面是我插入块的代码
public void AddBlockRef(double bx, double by, double bz)
{
Autodesk..ApplicationServices.Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Point3d point = new Point3d(bx, by, bz);
using (Database db = new Database(false, false))
{
using (Transaction trans = doc.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)trans.GetObject(doc.Database.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt, OpenMode.ForWrite);
//读取块
string blockFile = @"d:\arx\bplead_title.dwg";
string blockName = "BPLEAD_TITLE";
db.ReadDwgFile(blockFile, System.IO.FileShare.Read, true, null);
ObjectId blockId = doc.Database.Insert(blockName, db, false);
using (BlockReference br = new BlockReference(point, blockId))
{
btr.AppendEntity(br);
trans.AddNewlyCreatedDBObject(br, true);
}
trans.Commit();
}
}
//return blockId;//返回创建的块的对象Id
}
块参照的属性集合还是要用代码生成的,不会自动加的 大侠,我看过你好多帖子,灰常有帮助,想不到你在啊,能指点一下吗 看的AppendAttribToBlock函数
BlockRefJig jig = new BlockRefJig(blkref, AppendAttribToBlock(blkref, atts));
674. jig.SetPromptCounter(0);
675. PromptResult res = CadHelper.Editor.Drag(jig);
676. if (res.Status == PromptStatus.OK)
677. {
678. jig.SetPromptCounter(1);
679. res = CadHelper.Editor.Drag(jig);
680. if (res.Status == PromptStatus.OK)
681. {
682. return id;
683. }
684. }
685. blkref.Erase();
在这里面调用你说的这个方法的? 看不太明白呀,哪个方法是实现这个的?详细点说一下吧,嘿嘿,多谢
复制代码 好,我去试试,多谢,有不明白的在请教您! 复制代码大侠,这是我修改的类,但是部署了报错~
致命错误:Unhandled Access Violation Reading 0x0004 Exception at 645ad340h
能帮忙看看吗,哪出问题了~
file:///C:/Users/Nemo/AppData/Local/Temp/moz-screenshot.png
file:///C:/Users/Nemo/AppData/Local/Temp/moz-screenshot-1.png
file:///C:/Users/Nemo/AppData/Local/Temp/moz-screenshot-2.png
页:
[1]