gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

まだまだか? .Net

2005-10-27 10:52:38 | プログラミング
  久しぶりに .Net で AutoCAD プログラミング。
  レイヤーテーブルを得る。
Dim LaTable aAs LayerTable = ・・・・・・・
  よしとれた、OK
  今度は特定のレイヤーの オブジェクトID だ。
Oid = LaTable("ABC")
  OK、順調、順調
  ところがこのレイヤーを削除して、また同じ名前で作ってもう一度得ようとすると
Oid = LaTable("ABC")
  は昔の、削除されたオブジェクトIDを返してくれる。
  違う! 今作った生きてるのを返してと思ってもできない。
  ARX なら
AcDbLayerTable.getAt
  で、削除されたものを取るかどうかのフラグがある。が .Net には getAt がない。
  しかたがないので、COM経由で
Oid = FromAcadObject(AcadDoc.Layers.Item("ABC"))
  とすれば生きているレイヤーだけを取ることができる。
  またこんなことに半日も使ってしまった。

  まだまだやな。AutoCADアプリケーション on .Net