「objectarx」タグアーカイブ

C#:Autodeskのオブジェクトの種類

開発して、Autodeskのオブジェクトの種類が必要となったので自分の閉鎖予定のサイトから
転記した。

Autodesk.AutoCAD.DatabaseServicesnosの種類

Autodesk.AutoCAD.DatabaseServicesとは、
ObjectARX 20○○\inc\AcDbMgd.dllの変数で、単一オブジェクトですかね。

これが、結構多い

“Autodesk.AutoCAD.DatabaseServices.MText”
//マルチテキスト
“Autodesk.AutoCAD.DatabaseServices.DBText”
//文字
“Autodesk.AutoCAD.DatabaseServices.Line”
//ライン
“Autodesk.AutoCAD.DatabaseServices.Polyline”
//ポリライン
“Autodesk.AutoCAD.DatabaseServices.Polyline2d”
//ポリライン2D
“Autodesk.AutoCAD.DatabaseServices.Polyline3d”
//ポリライン3D
“Autodesk.AutoCAD.DatabaseServices.Circle”
//円の種類
“Autodesk.AutoCAD.DatabaseServices.Arc”
//円弧
“Autodesk.AutoCAD.DatabaseServices.Spline”
//スプライン
“Autodesk.AutoCAD.DatabaseServices.Hatch”
//ハッチング
//寸法の種類
“Autodesk.AutoCAD.DatabaseServices.Leader”
//引き出し線
“Autodesk.AutoCAD.DatabaseServices.AlignedDimension”
//長さ寸法
“Autodesk.AutoCAD.DatabaseServices.RotatedDimension”
//回転寸法
“Autodesk.AutoCAD.DatabaseServices.RadialDimension”
//半径寸法
“Autodesk.AutoCAD.DatabaseServices.DiametricDimension”
//直径寸法
“Autodesk.AutoCAD.DatabaseServices.LineAngularDimension2”
//2 本の線で定義される角度寸法
“Autodesk.AutoCAD.DatabaseServices.Point3AngularDimension”
//3 個の点で定義される角度寸法
“Autodesk.AutoCAD.DatabaseServices.ArcDimension”
//3 個の点で定義される角度寸法

このぐらいわかっていれば、変換等に苦労しないかな?

objectarx:2017 書き込む基本

わかりやすい。データベースの知識があれば迷わない。
// Start a transaction
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
// Open the Block table for read
BlockTable acBlkTbl;
acBlkTbl = acTrans.GetObject(acCurDb.CurrentSpaceId,OpenMode.ForRead) as BlockTable;

// Open the Block table record Model space for write
BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acCurDb.CurrentSpaceId,OpenMode.ForWrite) as BlockTableRecord;
トランザクションをかけて、
入れ物ネストで
acBlkTblRec.AppendEntity(acPoly);
acTrans.AddNewlyCreatedDBObject(acPoly, true);
アペンドでコミットすればいいだけ。

objectarx:2017 Entityは使えた

こんな感じ
Entity acEnt = tr.GetObject(obj.ObjectId, OpenMode.ForWrite) as Entity;
if (acEnt != null)
{
switch (acEnt.GetType().ToString())
{
case “Autodesk.AutoCAD.DatabaseServices.Polyline”:
文字列でオブジェクトを分ける視覚的に有利でした
switch (objects[j].GetRXClass().Name)
{
case “AcDbLine”:
//ラインの種類
こんな方法も使える。