- UID
- 247239
- 积分
- 347
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-4-20
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本程序弹出对话框
(defun *$dyq-error$* (msg)
;(command ".undo" "")
(setq *error* &olderr&)
;(princ)
)
(defun dyq-findstr (strstr fstr ii / i lenstr astr)
;若自左向右查找则ii=1,否则ii=-1,ii为其他数字将不被允许
(setq lenstr (strlen strstr))
(setq lenfstr (strlen fstr))
(setq astr 0)
(if (= ii 1)
(setq i 1)
(setq i (- lenstr lenfstr -1))
)
(repeat (- lenstr lenfstr -1)
(if (= (substr strstr i lenfstr) fstr)
(setq astr i)
)
(setq i (+ i ii))
)
astr
)
(defun c:ax (/ neirong n d wz wzlist)
(princ "直接输入钢筋数量、直径")
(setq &olderr& *error*)
(setq *error* *$dyq-error$*)
(setq dcldirect "c:/dyqdcl.dcl")
(if (findfile "c:/HRB.txt")
(progn
(setq f (open "c:/HRB.txt" "r"))
(setq hrb (read-line f)) ;钢筋等级
(setq b (read-line f)) ;梁宽
(setq as (read-line f)) ;保护层厚
(setq po_position (read-line f)) ;钢筋位置
(close f)
)
(progn
(setq hrb "1") ;钢筋等级
(setq b "200") ;梁宽
(setq as "25") ;保护层厚
(setq po_position "支座") ;钢筋位置
)
)
(setq f (open dcldirect "w")) ;将对话框输入到文件
(write-line "dyq_ax:dialog" f)
(write-line "{label=\"输入钢筋\";" f)
(write-line ":popup_list {" f)
(write-line "label=\"\";" f)
(write-line "key=\"dim\";" f)
(write-line "width=5;" f)
(write-line "list=\"HPB235\\nHRB335\\nHRB400\";" f)
(write-line "value=0;" f)
(write-line "}" f)
(write-line ":edit_box {" f)
(write-line (strcat "key=BeamWide;") f)
(write-line "width=5;" f)
(write-line "label=\"梁宽:\";" f)
(write-line "edit_width=5;" f)
(write-line "fixed_width=true;" f)
(write-line "alignment=centered;" f)
(write-line "is_enabled=true;" f)
(write-line "value=200;" f)
(write-line "}" f)
(write-line ":edit_box {" f)
(write-line (strcat "key=baohuceng;") f)
(write-line "width=5;" f)
(write-line "label=\"保护层厚:\";" f)
(write-line "edit_width=5;" f)
(write-line "fixed_width=true;" f)
(write-line "alignment=centered;" f)
(write-line "is_enabled=true;" f)
(write-line "value=25;" f)
(write-line "}" f)
(write-line ":boxed_radio_column {" f)
(write-line "label=\"钢筋位置\";" f)
(write-line
":radio_button {label=\"支座\";key=\"zhizuo\";}"
f
)
(write-line
":radio_button {label=\"底筋\";key=\"dijin\";}"
f
)
(write-line "}" f)
(write-line "ok_only;" f)
(write-line "}" f)
(close f)
(new_dialog
"dyq_ax"
(load_dialog dcldirect)
)
(set_tile "dim" hrb)
(set_tile "BeamWide" b)
(set_tile "baohuceng" as)
(if (= po_position "支座")
(set_tile "zhizuo" "1")
(set_tile "dijin" "1")
)
(action_tile
"dim"
"(setq hrb (get_tile $key)
fylist (get_attr $key \"list\"))"
)
(action_tile
"BeamWide"
"(setq b (get_tile $key))"
)
(action_tile
"baohuceng"
"(setq as (get_tile $key))"
)
(action_tile
"zhizuo"
"(setq po_position (get_attr $key \"label\"))"
)
(action_tile
"dijin"
"(setq po_position (get_attr $key \"label\"))"
)
(start_dialog)
(setq f (open "c:/HRB.txt" "w"))
(write-line hrb f) ;钢筋等级
(write-line b f) ;梁宽
(write-line as f) ;保护层厚
(write-line po_position f) ;钢筋位置
(close f)
(setq b (atof b))
(setq as (atof as))
(setq neirong "")
(while (and (setq n (getint "\n请输入钢筋根数:"))
(setq d (getint "\n请输入钢筋直径:"))
)
(setq neirong
(strcat neirong "+" (itoa n) (strcat "%%13" hrb) (itoa d))
)
)
(setq neirong (substr neirong 2 (strlen neirong)))
(setq
neirong (check_n_text neirong b po_position as)
)
(if (/= neirong "")
(while (setq wz (entsel "\n请点取要修改的文字:"))
(setq wzlist (entget (car wz)))
(setq oldneirong (cdr (assoc '1 wzlist)))
(if (wcmatch oldneirong "*;*,*;*,*;*,*;*") ;如果是集中标注
(progn
(setq key1 (dyq-findstr oldneirong ";" 1))
(setq key2 (dyq-findstr oldneirong ";" 1))
(setq key3 (dyq-findstr oldneirong ";" 1))
(setq key4 (dyq-findstr oldneirong ";" 1))
(setq key (max key1 key2 key3 key4)) ;获得;的位置
(if (= po_position "支座")
(setq neirong (strcat neirong (substr oldneirong key)))
;如果是支座
(setq neirong (strcat (substr oldneirong 1 key) neirong))
;如果是底筋
)
)
)
(setq wzlist
(subst (cons '1 neirong)
(assoc '1 wzlist)
wzlist
)
)
(entmod wzlist)
(setq f (open "c:/clipboard.txt" "w"))
(write-line neirong)
(close f)
)
)
(setq *error* &olderr&)
(princ)
) |
|