こんな感じ
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”:
//ラインの種類
こんな方法も使える。
「map3d」タグアーカイブ
objectarx:2017の利用って変わったようだ
C#で開発していたので、2013から書き直した
autocad objectarxで最も利用されるライブラリの他に
C:\Program Files\Autodesk\AutoCAD 2017\Map\ManagedMapApi.dll
これを参照すれば、FDO以外は、利用できる。
全てここにライブラリあるので昔は、DLが必要だったと思うが便利になった。
Map 3dがプラグインで動作しているようなので、利用価値は高い。
昔は、(cast)でほぼほぼ行けたはずだけど、今は行けないな。ガックシ
後は、あまりサンプルが無かったので、とりあえず
これだけでいい
using Autodesk.Gis.Map;
using Autodesk.Gis.Map.ObjectData;
using Autodesk.Gis.Map.Utilities;
//オブジェクトテーブルの用意
MapApplication mapApp = HostMapApplicationServices.Application;
//現在開いているマップオブジェクトのテーブルを取得
Autodesk.Gis.Map.ObjectData.Tables odTables = mapApp.ActiveProject.ODTables;
・・・
//オブジェクトテーブルのレコードの全てを取得
using (Autodesk.Gis.Map.ObjectData.Table odTable2 = odTables[obtbname])
{
using (Records odrecords = odTable2.GetObjectTableRecords(Convert.ToUInt32(i1), acSSObj.ObjectId,
Autodesk.Gis.Map.Constants.OpenMode.OpenForRead, false))
{
//レコードフィールドに変換
Record odRecord = odrecords[i1];
//レコードフィールド列を入れるて構造を取得
MapValue mapval = odRecord[fieldint];
・・・
ここ迄ネストでないとCLRのデットロックを、起こすか
正常に動作しない。
Map 3dは、マネージモードなので、従来のように、autodeskのサンプルの連続したオブジェクト渡しだと
全くダメダメでした。
MapValueは、 Autodesk.Gis.Map.Utilitiesのオブジェクトだけど、早めにdispose
させたほうが、数万データはいけるけど、そのまま渡していたら、デットロックや落ちる。
なので、mapval.StrValueは、中にを精査してSystem変数で抱えた方が、うまく動作する。
using ステートメントが確実、メソッドの呼び出し中に例外でも Dispose が必ず呼び出されます。
tryよりある意味、動作は安定する。
昔は、
using (Transaction acTrans = db.TransactionManager.StartTransaction())
のトランザクションをネストしたり、関数で飛ばしけど、今それやったら、落ちる。
2011から、2013までのソースがほとんど書き直し。とほほ。
とりあえず、覚書
autocad:裏サービスの任意停止
次は、インターネットのアクセスログが増大しているので解除して停止!
![]()
クラウドがソフトにまで進行してくるソフト側がブラウザを持つのも増えた。
これは、逆にリソースを多く使う。
通常でソケットを使って動くのだろうが、これもサードパティーを多く抱えたソフトは考え物だ。
これまで頻繁に、ログを見ても大半が広告的な要素がある。
実業務の為に仕方なく購入したはずが、不安定が増す、遅くなるという結果をPCに突きつけるのは凶暴だ。
auto_eskは、ソフトに対して1ブラウザ持っているようなのであまり意味の無い
調べてみた。
[Autodesk アンインストールツール]よりアンインストール可能なソフトウェア
A360 Desktop
Autodesk BIM 360 Glue AutoCAD 2016 Add-in
[プログラムと機能]よりアンインストール可能なソフトウェア
Autodesk App Manager 201_
Autodesk Application Manager
Autodesk 注目アプリ 201_
Autodesk AutoCAD Performance Feedback Tool
等は良いらしい。
https://knowledge.autodesk.com/ja/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/kA230000000mJiL.html
さっそく削除した。