在过去的两天里,我一直在寻找示例代码,这些步骤可能会帮助我理解Autocad。这样我就可以在C#中使用代码了。
[CommandMethod("LISTGEn")]
public static void ListEntities()
{
Document acDoc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
// Open the Block table record for read
BlockTable acBlkTbl;
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable;
// Open the Block table record Model space for read
BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForRead) as BlockTableRecord;
int nCnt = 0;
acDoc.Editor.WriteMessage("\nModel space objects: ");
// Step through each object in Model space and
// display the type of object found
foreach (ObjectId acObjId in acBlkTblRec)
{
acDoc.Editor.WriteMessage("\n" + acObjId.ObjectClass.DxfName);
nCnt = nCnt + 1;
}
acDoc.Editor.WriteMessage(nCnt.ToString());
// If no objects are found then display a message
if (nCnt == 0)
{
acDoc.Editor.WriteMessage("\n No objects found");
}
// Dispose of the transaction
}
} 我可以运行上面的代码,但是它不能正常运行。我很难理解如何与Autocad一起工作。我有参考OjectARX SDK,我正在与VS2010和Autocad 2012工作。谢谢你的帮助。
发布于 2013-08-07 08:10:16
好吧,我得到了唯一需要的东西
1.)是创建类库。
2.)然后需要在类中输入上述代码。
3.)通过按F5构建项目。
4.)将在项目的bin/debug/文件夹中创建DLL
5.)打开Autocad。
6.)编写netload命令。
7.)选择创建的DLL,然后编写命令"LISTGEN“,它将显示项目中的所有对象。
发布于 2013-08-08 00:19:44
为了避免手动重新加载dll,您可以使用临时修补程序进行调试,并编写一个lisp文件来帮助您进行调试。
(Command "netload" "path/to/your/.dll")\n或者你可以用\
看看我的github。链接在我的个人资料上。查看一下参考库,它对于对象模型操作是非常简化的。
如果你有任何问题,请发电子邮件给我。
https://stackoverflow.com/questions/18096683
复制相似问题