TOP PAGE > 記事閲覧
ARES2019でのlisp動作不具合
投稿日 | : 2019/07/11(Thu) 16:28 |
投稿者 | : だい |
参照先 | : |
選択した線分の両側0.1ずつオフセットし両端部より0.4内側から最初が0.5,次が4.0毎に仕切りを入れて
最後に0.5の仕切りを作るというLISPなんですが、ARES2018と2019では出来上がる形が違ってきます。
選択する線分に基づいて座標系を定義し、追加の線分と簡易注釈をその座標により書かせていますが、
ARES2019ではなぜか一部の線分をワールド座標により書いてしまうみたいです。
対策としてはどの様な手法が考えられますか?
(defun C:sentaku (ANG cyousei en hanpa honsuu hosei nagasa txt_ang ucsx ucsy warituke X1 X2 X3 X4 XKc XKi XL Y1 Y2 Y3 Y4 ytp)
(setvar "CMDECHO" 0);command 関数を実行中にプロンプトとユーザ入力をエコーバック表示しない
(setq en (entsel "センターラインの下流側を選択:(右クリックで終了)"))
(strcat (rtos (caadr en) 2 8) "," (rtos (cadadr en) 2 8))
(command "ucs" "ob" (strcat (rtos (caadr en) 2 8) "," (rtos (cadadr en) 2 8)))
;センターラインの長さ
(setq nagasa (distance (vlax-curve-getStartPoint (car en))(vlax-curve-getEndPoint (car en))))
;センターラインの角度
(setq ANG (angtos (angle (vlax-curve-getStartPoint (car en))(vlax-curve-getEndPoint (car en))) 0 8))
(setq X1 0.4)
(setq Y1 0.1)
(setq X2 (- nagasa 0.4))
(setq Y2 0.1)
(setq X3 0.4)
(setq Y3 -0.1)
(setq X4 (- nagasa 0.4))
(setq Y4 -0.1)
(setq ucsx (car (getvar "UCSXDIR")))
(setq ucsy (car (getvar "UCSYDIR")))
(if (>= ucsx 0)
(progn
(setq txt_ang 0)
(setq hosei 1)
(if (or (= ANG 90)(= ANG 270))
(if (>= ucsy 0)
(progn
(setq txt_ang 180)
(setq hosei -1)
)
)
)
);progn
(progn
(setq txt_ang 180)
(setq hosei -1)
(if (or (= ANG 90)(= ANG 270))
(if (>= ucsy 0)
(progn
(setq txt_ang 0)
(setq hosei 1)
)
)
)
);progn
);if
(setq ytp (- 0 (* 0.2 hosei)))
(command "_line" (list X1 Y1)(list X2 Y2) "")
(command "_select" "_l" "");後でグループ化するため
(command "_line" (list X3 Y3)(list X4 Y4) "")
(command "_select" "_l" "p" "")
(command "_line" (list X1 Y1)(list X3 Y3) "")
(command "_select" "_l" "_p" "");後でグループ化するため
(command "_line" (list X2 Y2)(list X4 Y4) "")
(command "_select" "_l" "_p" "");後でグループ化するため
(setq XKi (+ X1 0.5))
(setq warituke (- nagasa 0.4 0.4 0.5 0.5))
(setq hanpa (fix (rem (* warituke 1000) 4000)))
(if (> hanpa 0)
(setq honsuu (fix (/ warituke 4)))
(setq honsuu (- (fix (/ warituke 4)) 1))
)
(command "_line" (list XKi Y1)(list XKi Y3) "")
(command "_select" "_l" "_p" "");後でグループ化するため
(command "_line" (list (- X2 0.5) Y1)(list (- X2 0.5) Y3) "")
(command "_select" "_l" "_p" "");後でグループ化するため
(command "_dtext" "j" "tc" (list (/ (+ XKi X1) 2) ytp) 0.2 txt_ang "0.50")
(command "_select" "_l" "_p" "");後でグループ化するため
(command "_dtext" "j" "tc" (list (- X2 (/ 0.5 2)) ytp) 0.2 txt_ang "0.50")
(command "_select" "_l" "_p" "");後でグループ化するため
(if (>= honsuu 0)
(repeat honsuu
(setq XKi (+ XKi 4))
(command "_line" (list XKi Y1)(list XKi Y3) "")
(command "_select" "_l" "_p" "");後でグループ化するため
(command "_dtext" "j" "tc" (list (- XKi 2) ytp) 0.2 txt_ang "4.00")
(command "_select" "_l" "_p" "");後でグループ化するため
(setq XL XKi)
)
)
(if (>= honsuu 0)
(progn
(setq cyousei (rtos (- warituke (* 4 honsuu)) 2 2))
(setq XKc (- X2 0.5 (/ (distof cyousei 2) 2)))
(command "_dtext" "j" "tc" (list XKc ytp) 0.2 txt_ang cyousei)
(command "_select" "_l" "_p" "");後でグループ化するため
)
)
(command "-group" "" "*" "" "p" "")
(command "_ucs" "p")
(setvar "CMDECHO" 1)
(princ)
)
Re: ARES2019でのlisp動作不具合
投稿日 | : 2019/08/01(Thu) 16:58 |
投稿者 | : だい |
参照先 | : |
ARES最新版 (2019.1.1.2043) にアップグレードしてみたら、問題なく描画できました。
お騒がせしました。<(_ _)>