이것은 사용자 선택에 따라 dwg에서 블록을 선택하고 mtext를 사용하여 dwg 파일의 블록 세부 정보를 인쇄하지만 mtext는 작동하지 않습니다. 어떤 것. 그것은 저에게 예외를줍니다.사용자 선택에 따라 블록의 정보를 표시하는 코드
[CommandMethod("LAT")]
public void ListAttributes()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Editor ed =
Application.DocumentManager.MdiActiveDocument.Editor;
Database db =
HostApplicationServices.WorkingDatabase;
Transaction tr =
db.TransactionManager.StartTransaction();
// Start the transaction
try
{
// Build a filter list so that only
// block references are selected
TypedValue[] filList = new TypedValue[1] {
new TypedValue((int)DxfCode.Start, "INSERT")
};
SelectionFilter filter =
new SelectionFilter(filList);
PromptSelectionOptions opts =
new PromptSelectionOptions();
opts.MessageForAdding = "Select block references: ";
PromptSelectionResult res =
ed.GetSelection(opts, filter);
// Do nothing if selection is unsuccessful
if (res.Status != PromptStatus.OK)
return;
SelectionSet selSet = res.Value;
ObjectId[] idArray = selSet.GetObjectIds();
foreach (ObjectId blkId in idArray)
{
BlockReference blkRef =
(BlockReference)tr.GetObject(blkId,
OpenMode.ForRead);
BlockTableRecord btr =
(BlockTableRecord)tr.GetObject(
blkRef.BlockTableRecord,
OpenMode.ForWrite
);
ed.WriteMessage(
"\nBlock: " + btr.Name
);
//btr.Dispose();
AttributeCollection attCol =
blkRef.AttributeCollection;
foreach (ObjectId attId in attCol)
{
MText mtext = new MText();
mtext.SetDatabaseDefaults();
mtext.Height = 2;
AttributeReference attRef =
(AttributeReference)tr.GetObject(attId,
OpenMode.ForRead);
string str =
////("\n Attribute Tag: "
//// + attRef.Tag
//// + "\n Attribute String: "
("\n" + attRef.TextString);
mtext.Contents = ("hELLO");
acDoc.Editor.WriteMessage("\n" + str);
btr.AppendEntity(mtext);
tr.AddNewlyCreatedDBObject(mtext, true);
}
}
tr.Commit();
}
catch (Autodesk.AutoCAD.Runtime.Exception ex)
{
ed.WriteMessage(("Exception: " + ex.Message));
}
finally
{
tr.Dispose();
}
}
}
}
코드는 어디에 있습니까? 자세한 내용을 추가해야합니다. 최대 투표 수만해도 원래 게시물에 세부 사항이 없습니까? – par
코드는 이전 버전이었습니다. 나는 'ObjectARX'태그를 제안한다. –