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) にアップグレードしてみたら、問題なく描画できました。
お騒がせしました。<(_ _)>
記事編集 編集
ページの上に移動
件名 スレッドをトップへソート
名前
メールアドレス
URL
暗証キー
画像認証 (右画像の数字を入力) 投稿キー
コメント


- WEB PATIO -