TOP PAGE > 記事閲覧
横断図高さ計測(lisp)
投稿日 | : 2017/02/13(Mon) 10:37 |
投稿者 | : アルサポ |
参照先 | : |
横断図の高さを測ると基準高(DL)を計算した標高が表示され、
必要であれば引出線を記入するlispを掲載したいと思います。
まず、このlispが以下の条件の場合に使えない事があるので注意して下さい。
JDraf2016 32bit版を利用し、JDraf Works各種ツールがインストール
されている場合にこのlispを実行すると、その最中に画面移動を行うと
lispが途中で中断してしまう問題がある事がわかっています。
要するにJDraf2016 32bit版では、このlispは使えないという事です。
(64bit版では問題なく利用できるそうです)
しかし、次期バージョンのARES Commander2017では、この問題が
解決しているということで、JDrafのサポートセンターから聞いています。
私の場合はJDraf2016 32bit版を利用しているので、実はAutoCADで
このlispを利用していましたが、現行の64bit版やもうすぐリリースされる
次期バージョンでは利用できるという事なので忘れないうちに、
このlispを紹介しておこうと思います。
それでは、次の投稿でlispのソースコードを記載します。
Re: 横断図高さ計測(lisp)
投稿日 | : 2017/02/13(Mon) 10:39 |
投稿者 | : アルサポ |
参照先 | : http://r-support.org/bbs/tmp/sample07.lsp |
(setq scalePreexist 1) ;初期値を設定
(setq datumPreexist 10) ;初期値を設定
(setq flgPreexist "Y") ;初期値を設定
(defun C:surveyH(/ scaleTxt scale datuTxt datum pt1 pt2 len answer flgTxt flg putpt)
(setq scaleTxt (strcat "\n尺度を入力<" (rtos scalePreexist) ">:"))
(setq scale (getreal scaleTxt))
(if (= scale nil)
(setq scale scalePreexist)
(setq scalePreexist scale)
);if
(setq datumTxt (strcat "\n基準高(DL)を入力(m)<" (rtos datumPreexist) ">:"))
(setq datum (getreal datumTxt))
(if (= datum nil)
(setq datum datumPreexist)
(setq datumPreexist datum)
);if
(setq pt1 (getpoint "\n基準高(DL)の位置を指示:"))
(setq pt2 (getpoint pt1 "\n知りたい高さの位置を指示:"))
(setq len (/ (- (cadr pt2) (cadr pt1)) 1000))
(setq answer (+ datum (* len scale)))
(princ "\n高さ:")
(princ answer)
(setq flgTxt (strcat " [引出線を記入しますか?<" flgPreexist ">]:"))
(setq flg (getstring flgTxt))
(if (= flg "") (setq flg flgPreexist))
(if (wcmatch (strcase flg) "Y")
(progn
(setq flgPreexist "Y")
(setq putpt (getpoint pt2 "\n引出線の記入位置を指示:"))
(command "_leader" pt2 putpt "" (rtos answer 2 3) "" "");小数第3位までを表示(rtos)
);progn
(setq flgPreexist "N")
);if
(princ)
)
Re: 横断図高さ計測(lisp)
投稿日 | : 2017/02/13(Mon) 10:46 |
投稿者 | : アルサポ |
参照先 | : |
コマンドウインドウに「surveyH」と入力するとlispが実行されます。
1.尺度入力を行います。
例えば、CAD上で図面が原寸でかいてある場合には「1」、
1/1000(メートル単位)でかいてある場合には「1000」を入力します。
(用紙サイズでかいてある場合には横断図の縮尺の分母を入力)
2.基準高(DL)を入力します。
基準高は、図面上に「DL=○○m」の○○の部分でメートル単位で数値入力して下さい。
3.基準高(DL)の位置を指示します。
基準高の線上であれば、どこでもいいのでクイックして下さい。
4.知りたい高さの位置を指示します。
クリックをすると高さが計算され、コマンドウインドウに高さが表示されます。
5.引出線の記入の有無を入力します。
記入しない場合は「N」(小文字でも良いし、Y以外の文字であればすべてNの時と同じ処理がされる)
を入力すると、ここで終了になります。
記入する場合は「Y」(小文字でも良い)を入力し、次に引出線の記入位置を指示すると
引出線が入力され終了になります。
※キーボードで入力する箇所の値については、何も入力せずにスペースキーまたはEnterキー
を押すことで、コマンドウインドウに表示されている「< >」で囲まれている値が入力される
ので注意して下さい。