CAD开发_闭合多段线填充 导入dwg文件
CAD开发_闭合多段线填充&导入dwg文件
In the study of CAD development project, summed up some of the.NetObjectARX development of CAD methods and techniques to share with you. We can use Baidu or Baidu library search "qk611187", I hope everyone will support, stay an exchange group 171429410, we can discuss the problems encountered in the development. Due to my limited ability, I hope everyone will criticize me in the wrong place. (Liaoning Technical University, Liaoning, multidimensional technology, Qin Kai)
//AddHatchforPolyline (PL, 0, ANGLE, 0,1);
/ / a polyline filling
Static, ObjectId, AddHatchforPolyline (Polyline, PL, HatchPatternType, patType, string, patName, double, patternAngle, double, patternScale)
{
Try
{
ObjectIdCollection IDS = new, ObjectIdCollection ();
Ids.Add (pl.ObjectId);
Hatch ent = new, Hatch ();
Ent.HatchObjectType = HatchObjectType.HatchObject;
Database DB = HostApplicationServices.WorkingDatabase;
Using (Transaction, trans =
db.TransactionManager.StartTransaction ())
{
BlockTable, BT = (BlockTable) trans.GetObject (db.BlockTableId, OpenMode.ForRead);
BlockTableRecord, BTR = (BlockTableRecord) trans.GetObject (bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
ObjectId entId = btr.AppendEntity (ENT);
Trans.AddNewlyCreatedDBObject (ENT, true);
Ent.PatternAngle = patternAngle;
Ent.PatternScale = patternScale;
Ent.SetHatchPattern (patType, patName);
Ent.Associative = true;
Ent.InsertLoopAt (0, HatchLoopTypes.Default, IDS);
Trans.Commit ();
Return entId;
}
}
Catch (System.Exception, ex)
{
ObjectId nullId = ObjectId.Null;
Return nullId;
}
}
/ / DWG file into the CAD
Public, static, List, ents = new, List ();
public static void importentityfromdwg(字符串sourceFileName)
{
数据库DB = hostapplicationservices.workingdatabase;
编辑Ed =
autodesk.autocad.applicationservices.application.documentma
nager.mdiactivedocument.editor;
数据库sourcedb =新的数据库(假的,真的);
sourcedb。readdwgfile(sourceFileName,
system.io.fileshare.read,真的,空的);
clear()树人;
使用(事务=(交易)sourcedb。TransactionManager。starttransaction())
{
BlockTable sourcebt =(BlockTable)反。GetObject(sourcedb.blocktableid,打开方式。阅读);
sourcebtr =(BlockTableRecord BlockTableRecord)反。GetObject
(sourcebt [ BlockTableRecord。模型空间],打开方式。阅读);
foreach(objectid ID sourcebtr)
{
实体企业=(实体)反。GetObject(ID,打开方式。阅读);
树人。添加(ENT);
}
commit()跨;
sourcebt。dispose();
}
/ /操作完成,销毁源数据库
sourcedb。dispose();
}
以上代码来源于自己的项目中