・ 図形オブジェクトの押出し方向を反転

図形オブジェクトの押出し方向は、エンティティーデータのグループコード210で取得できます。
しかし、このデータ各要素を-1倍して、(entmod) すると、OCSとWCSが異なる場合、押出し方向は反転するが、他の定義点の位置も変わってしまうのです。各定義点もそれぞれ変換して (entmod) すればよいのですが、めんどくさい (ーー;)

そこで、VLISP の (vla-TransformBy) でマトリックス変換してみました。
通常 (vla-TransformBy) では異尺度のマトリックスは受け入れないのですが、絶対値が同じならいいらしい。

(defun Jo_obj_rev ( / n ss en mat v_obj );VLISP用;
  (vl-load-com)
  (setq mat(vlax-tmatrix '((1 0 0 0)
			   (0 1 0 0)
			   (0 0 -1 0)
			   (0 0 0 1))))
  (setq n 0)
  (princ "\n押出し方向を反転する図形オブジェクトを選択")
  (if (setq ss (ssget))
    (while (setq en (ssname ss n))
      (setq v_obj (vlax-ename->vla-object en))
      (vla-TransformBy v_obj mat)
      (vla-Update v_obj)
      (setq n (1+ n))
      )
    )
  (princ (strcat "\n" (itoa n) "個のオブジェクトを処理しました"))
  (setq ss nil)
  (princ)
  )