特定オブジェクトの処理を行うとき、
下記のようなコードを組んでいました。
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
For i = 0 To gAcadDrawing.ModelSpace.count - 1
If TypeName(gAcadDrawing.ModelSpace.Item(i)) = "IAcadText" Then
Set textObj(j) = gAcadDrawing.ModelSpace.Item(i)
j = j + 1
End If
Next
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
無駄ですな。
全オブジェクトをfor loopで回してチェックするなんて・・・。
しかも、時間掛かります。
どーしたら、早くなるのかなぁ~、なんて思っていたらありました!
選択セット(AcadSelectionSet)なんて手。
これを使うと、必要なオブジェクトだけを取得することが出来ます。
文字だけ!とか、寸法だけ!とか、
画層名の頭に「A」の付いている画層に属するオブジェクトだけ取り出す!
って時に便利です。
にほんブログ村
へ