メッセージ1/5
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- パーマリンクを表示
- 印刷
- 報告
添付したLispは、幅を入力すると、0,0-100,0の線を書き、これをY+側に入力した幅分オフセット。
次に、入力幅の1/2をY-側にオフセットして、3本の線を書きます。
そして、ssgetで、中央の線の開始点を通るオブジェクトを抽出し、その数を表示します。
当然、ssgetの結果は、1になるはずですが、私の環境では幅0.2までは正常に動作しますが、
幅0.1以下だとssgetの結果は3になてしまいます。
この問題の原因と、解決方法は無いでしょうか?
よろしく、お願いいたします。
(defun c:test1 ( / wid pt ss nn)
(setq wid (getreal "幅を入力: "))
(command "_line" "0,0" "100,0" "")
(command "_offset" wid (entlast) "50,10" "")
(command "_offset" (/ wid 2) (entlast) "50,0" "")
(setq pt (cdr (assoc 10 (entget (entlast)))))
(setq ss (ssget "C" pt pt))
(setq nn (sslength ss))
(princ "\n")
(princ "点ptを通るオブジェクトは ")
(princ nn)
(princ)
)
解決済! 解決策の投稿を見る。