fc2ブログ

Dialog:図面情報登録(Drawinfo)

2023年12月30日
Diesel(アイコンマクロ)&AutoLISP


※当該機能はLISP処理のため、AutoCAD LT ではご使用になることができません。


DiaDrawInfo.lsp
;=====================
(defun C:DiaDrawInfo (/ dcl_file dcl_id Act flag)
;(defun c:tt (/ dcl_file dcl_id Act flag)
;=====================
(setq
dcl_file "DiaDrawInfo.dcl"
dcl_id (load_dialog dcl_file)
)
;-------
(if (not (new_dialog "DiaDrawInfo" dcl_id))
(progn
(alert "ダイアログボックスが見つかりません")
(exit)
)
);if
;-------作図単位
(start_list "ComboBox1")
(add_list "m:メートル")
(add_list "mm:ミリメートル")
(end_list)

;(setq 作図単位 (getenv "作図単位"))
(setq 作図単位 (getenv "作図単位"));<----
(if 作図単位;<---作図単位 が nil でないとき
(progn
(if (= "1" 作図単位)
(set_tile "ComboBox1" "0");m
(set_tile "ComboBox1" "1");mm
);if
);progn
(set_tile "ComboBox1" "1");mm ---作図単位 が nil のとき
);if

;-------小数点
(start_list "ComboBox2")
(add_list "0")
(add_list "0.0")
(add_list "0.00")
(add_list "0.000")
(add_list "0.0000")
(end_list)
(setq 小数点 (getenv "小数点"));<----
;-------
(if 小数点;<---小数点 が nil でないとき
(progn
(if (and (>=(atoi 小数点) 0)(<=(atoi 小数点) 4))
(set_tile "ComboBox2" 小数点);0~4位のとき
(set_tile "ComboBox2" "3");それ以外
)
);progn
(set_tile "ComboBox2" "3");小数点 が nil のとき
)

;-------図面縮尺
(setq 図面縮尺 (getenv "図面縮尺"));<----
(if 図面縮尺;<-----(if (/= 図面縮尺 nil)・・・図面縮尺 が nil でないとき
(set_tile "TextBox1" 図面縮尺);
(progn;nil のとき
(set_tile "TextBox1" "100");
(Setenv "図面縮尺" "100")
)
)

;-------文字高
(setq 文字高 (getenv "文字高"));<----
(if 文字高;<-----(if (/= 文字高 nil)・・・文字高 が nil でないとき
(set_tile "TextBox2" 文字高);
(progn;nil のとき
(set_tile "TextBox2" "3.0");
(Setenv "文字高" "3.0")
);progn
);if

;-------
(action_tile "accept" "(CheckDiaData) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
;-------
(setq Act (start_dialog))
(unload_dialog dcl_id)
;-------

)





;=====================
(defun CheckDiaData()
;=====================
;-------作図単位
(setq 作図単位 (get_tile "ComboBox1"))
(if (= 作図単位 "0");m作図
(progn;m作図
(Setenv "作図単位" "1")
(Setenv "作図単位m" "m")
(Setenv "係数" "1")
(Setenv "面積係数" "1")
);progn
;-----
(progn;mm作図
(Setenv "作図単位" "1000")
(Setenv "作図単位m" "mm")
(Setenv "係数" "0.001")
(Setenv "面積係数" "0.000001")
);progn
);if

;-------小数点
(setq 小数点 (get_tile "ComboBox2"))
(Setenv "小数点" 小数点)

;-------図面縮尺
(setq 図面縮尺 (get_tile "TextBox1"))
(if (= "" 図面縮尺)
(Setq 図面縮尺 (Getenv "図面縮尺"));<----Enter/空打--->従前値採用
);if
(Setenv "図面縮尺" 図面縮尺)

;-------文字高
(setq 文字高 (get_tile "TextBox2"))
(if (= "" 文字高)
(Setq 文字高 (Getenv "文字高"));<----Enter/空打--->従前値採用
);if
(Setenv "文字高" 文字高)

;-------Calc
(Setq 倍率 (* 0.001 (atof (Getenv "作図単位")) (atof (Getenv "図面縮尺"))))
(Setenv "倍率" (rtos 倍率))
;-------
(Setvar "TextSize" (* 倍率 (atof (Getenv "文字高"))))
;-------

;-------文字作図サイズ
(setq 文字作図サイズ (* 1.0 (atof (getenv "文字高")) 倍率))
(Setenv "文字作図サイズ" (rtos 文字作図サイズ))
(Setenv "MyTextSize" (rtos 文字作図サイズ))
;-------

;(alert "!!")

)










DiaDrawInfo.dcl
DiaDrawInfo:dialog {
label = "図面情報";
:column {

//--------
:popup_list
{
label = "作図単位:";
key = "ComboBox1";
width = 22;
}

//--------
:edit_box
{
label = "図面縮尺 1:";
key = "TextBox1";
}


//--------
:edit_box {
label = "文字サイズ(mm):";
key = "TextBox2";

}
//--------
:popup_list {
label = "小数点桁:";
key = "ComboBox2";
}


}//column
//ok_only;
ok_cancel;
}












 関連アプリ




関連記事
スポンサーサイト



Gallery担当:山野 ロザリア平久郎
Posted by Gallery担当:山野 ロザリア平久郎