読者です 読者をやめる 読者になる 読者になる

図描きの備忘録

日々の業務の時間短縮。残業しないで帰る事を目指し、悪戦苦闘中。AutoCAD、Lisp、効率化、自動化、合理的、プログラミング、資産運用勉強中

Lisp実践編 - 35 - コマンドラインで出来る簡易計算機!

Lisp実践編 - 35

こんにちは!

エカキオです!

AutoCADのコマンドライン上で入力できる簡易計算機のLispです。


小数点の桁数は任意で設定ください。
計算元の数値はデータ上にあるオブジェクトを利用出来ます。

ぜひともご利用ください!

そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
保存と利用方法はこちら。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録


コード

;簡易計算機
(defun c:CA ( / s1 k1 k2 k3 p1 )
(princ "¥n簡易計算機")
;都合によりここの数値を変更して!********************************************************************

	;↓小数点の桁数
	(setq flcount 10)

;*****************************************************************************************************

	(princ "¥n簡易計算機!数値を1つ選択してください")
	(setq s1 (atof(cdr(assoc 1 (entget(car(entsel)))))))
	(initget 1 "1 2 3 4")
	(setq k1 (getkword "¥n計算方法入力 1:(+)/2:(-)/3:(*)/4:(/)_"))
	(setq k2 (getreal "¥n計算値を入力 <オブジェクトを選択>:"))
		(if (= k2 nil)
			(progn
			(setq k2 (atof (cdr(assoc 1 (entget(car(entsel)))))))
			)
		)
	(cond   ((= k1 "1")(setq k3 (+ s1 k2)))
		((= k1 "2")(setq k3 (- s1 k2)))
		((= k1 "3")(setq k3 (* s1 k2)))
		((= k1 "4")(setq k3 (/ s1 k2)))
	)
	(initget 1)
	(setq p1 (getpoint"¥n位置を指定:"))
	(setq k3 (rtos k3 2 flcount))
	(entmake (list
		 '(0 . "TEXT")
		  (cons 10 p1)
		  (cons 40 (getvar "textsize"))
		  (cons 1 k3)
		 )
	)
	(princ)
)

参考記事

Lisp 入門編 カテゴリーの記事一覧 - 図描きの備忘録

実践編コードの共通事項

最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "\n~")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)

※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。


最速攻略AutoCAD VB.NETマクロサンプル大全集AutoCAD2009/2010/2011/2012/2013対応

最速攻略AutoCAD VB.NETマクロサンプル大全集AutoCAD2009/2010/2011/2012/2013対応

Related Posts Plugin for WordPress, Blogger...