・ 図形オブジェクトの押出し方向を反転
図形オブジェクトの押出し方向は、エンティティーデータのグループコード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) )