🌊

AutoCADで頂点のZ値を描き出す LISP

に公開
;-----------------------------------処理開始
    ;注釈→TEXTの高さを取得
	(initget (+ 2 4));ゼロ不可,マイナス不可
	(setq tsz (getreal (strcat "\n 文字の高さ指定:[数値]  または [Enter]=直接指定 :")))
	(if (= tsz nil)
		(setq tsz (getdist "\n 文字の高さ 1 点目を指定"))
	)

;ここ、苦労しました。文字の高さを指示します。数値を入れれば、それをtszに入れる
;そうでなければ、画面で指示(textコマンドのように)

  ;地盤高or計画高
  (setq scl (getstring "\n 地盤高or計画高 f=FH/g=GH <f>:"))
    (if (or (= scl "f")(= scl ""))
      (setq scl "FH=")
      (setq scl "GH=")
    )

;ここで、FH=とかGH=とか記載する(後から描き込んだ文字か分からなくなるから)
;でも、不要だったかも? defpointレイヤに入れればいいやん!(笑)

	;-----------------------------------計測点指示
	(initget 0);null可
	(while (/= (setq p1 (getpoint "\nZ値を計測したい点(Enter=終了):")) nil)
		;-----------------------------------文字記入
		(setq txt (rtos (caddr p1) 2 3))
;caddrでp1のZ値を取得しますー
;rtosで文字を変換(少数点以下3桁)
		(setq txt (strcat scl txt))
;strcatでFH=やGH=を付けて表示
		(setq scol (getvar "cecolor"))
		(if (or (= scol 256)(= scol 0))(setq scol "bylayer"))
;command "color"でTEXTオブジェクトを描画 command "TEXT"は、うまく走らない
		(command "color" col "text" "J" "L" p1 tsz "45" txt "color" scol)
	);whle終わり
	(initget 0);null可
;-----------------------------------処理終了
(princ)

📹 使用例(動画予定)
  〇3DのサーフェスからZ値を取得する方法
  〇点群から作成した現況サーフェスでも頂点の高さが計測できますね

今後のヒント
  〇例えば、縦断図の計画線からZ値を描き出すとか
  〇横断図の端点からZ値を描き出すとか

現場での確認作業が効率化されるだけでなく、
設計ミスの防止にもつながるツールになったと思います。

AutoCADのカスタマイズって、ちょっとした工夫で
業務がグッと楽になるのが面白いと思うがやけんど...
ほいたらねー

Discussion