下午还能用晚上用不了 了
(defun c:TOOLS (/ *error* dcl_id dcl_file dcl_content result);; 错误处理函数
(defun *error* (msg)
(if dcl_id (unload_dialog dcl_id))
(if dcl_file (vl-file-delete dcl_file))
(princ "\n* 工具箱已清理 *")
)
;; 对话框定义
(setq dcl_content
"tools : dialog {
label = \"智能绘图工具集 V2.1\";
spacer;
: boxed_column {
label = \"核心工具\";
: row {
: button { key = \"ac\"; label = \"智能绘弧\"; width = 15; fixed_width = true; }
: button { key = \"JX\";label = \"快速矩形\";width = 15; fixed_width = true; }
}
: row {
: button { key = \"zd\";label = \"展点标注\"; width = 15; fixed_width = true; }
: button { key = \"zb\";label = \"坐标汇总\"; width = 15; fixed_width = true; }
}
}
: boxed_column {
label = \"专业工具\";
: row {
: button { key = \"hzq\"; label = \"挡土墙设计\"; width = 15; fixed_width = true; }
: button { key = \"dmt\"; label = \"断面绘制\"; width = 15; fixed_width = true; }
}
: row {
: button { key = \"dmj\"; label = \"土方计算\"; width = 15; fixed_width = true; }
: button { key = \"mjb\"; label = \"面积统计\"; width = 15; fixed_width = true; }
}
}
: boxed_column {
label = \"实用工具\";
: row {
: button { key = \"hb\";label = \"填充处理\"; width = 15; fixed_width = true; }
: button { key = \"MPE\"; label = \"多段线合并\"; width = 15; fixed_width = true; }
}
: row {
: button { key = \"ft\";label = \"图纸分割\"; width = 15; fixed_width = true; }
: button { key = \"gp\";label = \"数据导出\"; width = 15; fixed_width = true; }
}
}
ok_cancel;
}"
)
;; 创建临时DCL文件
(setq dcl_file (vl-filename-mktemp "TOOLS.dcl"))
(if (not (setq f (open dcl_file "w")))
(progn
(alert "无法创建临时文件!\n请检查临时目录权限")
(exit)
)
)
(write-line dcl_content f)
(close f)
;; 加载对话框
(if (<= (setq dcl_id (load_dialog dcl_file)) 0)
(progn
(alert "对话框加载失败!\n可能原因:\n1. DCL语法错误\n2. 文件权限问题")
(exit)
)
)
;; 初始化对话框
(if (not (new_dialog "tools" dcl_id))
(progn
(alert "对话框初始化失败!")
(exit)
)
)
;; 定义按钮动作
(action_tile "ac" "(done_dialog 1)")
(action_tile "JX""(done_dialog 2)")
(action_tile "zd""(done_dialog 3)")
(action_tile "zb""(done_dialog 4)")
(action_tile "hzq" "(done_dialog 5)")
(action_tile "dmt" "(done_dialog 6)")
(action_tile "dmj" "(done_dialog 7)")
(action_tile "mjb" "(done_dialog 8)")
(action_tile "hb""(done_dialog 9)")
(action_tile "MPE" "(done_dialog 10)")
(action_tile "ft""(done_dialog 11)")
(action_tile "gp""(done_dialog 12)")
;; 显示对话框
(setq result (start_dialog))
(unload_dialog dcl_id)
(vl-file-delete dcl_file)
;; 执行命令
(cond
((= result 1)(c:AC))
((= result 2)(c:JX))
((= result 3)(c:ZD))
((= result 4)(c:ZB))
((= result 5)(c:HZQ))
((= result 6)(c:DMT))
((= result 7)(c:DMJ))
((= result 8)(c:MJB))
((= result 9)(c:HB))
((= result 10) (c:MPE))
((= result 11) (c:FT))
((= result 12) (c:GP))
)
(princ)
)
;; 初始化提示
(princ "\n★ 智能工具箱已加载,输入命令 TOOLS 启动 ★")
(princ)
你只加载了界面,没有加载内容,就好比你去朋友家看到他电脑上的游戏挺好玩,想要拷贝回家,然后你就把桌面的快捷方式拷贝回去了,然后就一直问为什么打不开 本帖最后由 zhangrunze 于 2025-5-13 23:28 编辑
CAD2024 窗口正常弹出~还是小白,学习中。
是不是运行环境的问题?
什么都没有动,运行正常~
对话界面有,命令无法运行 本帖最后由 xiao1984 于 2025-5-14 08:50 编辑
cjf160204 发表于 2025-5-14 08:46
对话界面有,命令无法运行
没有程序辅助函数运行什么?你那个调用函数有了,调用什么呢? xiao1984 发表于 2025-5-14 08:49
没有程序辅助函数运行什么?你那个调用函数有了,调用什么呢?
学习了!
是的~还要调用工具,工具的代码没有~
运行窗口前,相关工具要已加载~
就是说,这个只是个面板,没有脚本内容。但是你可以自己改写,就是能得到自己的工具箱 没毛病啊,可以使用
页:
[1]