🕌

AutoCAD 面積を描き出すコード 4

に公開

AutoCADで面積を描き出すLISPを作った話(操作、処理編)

	;-----------------------------------計測点指示「while」関数で繰返します
	(initget 0);null可
	(while (/= (setq p1 (getpoint "\n面積を計測したい内側の点(Enter=終了):")) nil)
		;-----------------------------------Pline作成
		(setq epname (ssname (ssget "L") 0)) ; 1つ前の図形を保存
		(command "-boundary" p1 "");boundaryコマンドで境界線作成
		(setq enname (ssname (ssget "L") 0)) ; 作成された図形
		(if (equal epname enname)
			(princ "\nERROR:計測不可");2重に境界線が作成されることがあるのでエラー処理
			(progn
				;-----------------------------------AREAコマンドで面積抽出
				(command "area" "o" "l")
    (setq txt (getvar "area"))
        (setq txt (* txt ss))
				(setq txt (rtos txt 2 dec))
        (setq txt (strcat aa txt mm));単位に直します
				;-----------------------------------文字記入は「color」コマンドで
				(setq scol (getvar "cecolor"))
				(if (or (= scol 256)(= scol 0))(setq scol "bylayer"))
				(command "color" scol "text" "J" "MC" p1 tsz "0" txt "color" scol)
				(if (or (= kwd nil)(= kwd "N"))(entdel enname))
			)
		)
		(initget 0);null可
	)
	(redraw)

こんな感じで処理します。

年に数回?使うか?使わないか?ですが...
沢山の同じ処理をする手間は省かれますし
「えー。これやらな いかんがー ⤵ ⤵ ⤵ 」て テンション爆下がりの時でも
「APPLOAD」→「LISP」をロード→「コマンド」を打てば、答えを出してくれます。

こういうことで、やる気を貰いゆうでー
ほいたらねー

Discussion