明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3047|回复: 23

对话框问题,不知问题出在何处?

  [复制链接]
发表于 2004-6-19 16:40:00 | 显示全部楼层 |阅读模式
//此程式kjcjtc-1.lsp部分单独执行没问题 ,加上对话框后cjtc.lsp执行则当机,请大侠帮助. //对话框部分 cjtc: dialog {
label = "图层创建快捷框 软体设计 李义东";
:boxed_column{
label="批量创建图层";
:row{
:edit32_box{label="专案代号";key="dnum_c";edit_width=15;} //dnum专案代号
}
:row{
:edit32_box{label="输入创建层数量";key="num_c";edit_width=15;} //num创建层数量
}
:row{
: button {label = "开始批量创建图层";key = "addlay_j";width = 10;} //ALLPART创建图层指令
}
}
ok_only;
} ;LISP部分开始 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;以下为快速创建图层;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:cjtc()
(setq dcl_file "cjtc" ; 指定DCL档案的名称
dcl_name "cjtc") ; 指定对话框的名称 (setq dcl_flag (load_dialog dcl_file)) ; 载入DCL档案
(if (< dcl_flag 0) (exit)) ; 判断DCL档案是否已载入? (if (not (new_dialog dcl_name dcl_flag)) (exit)); 显现对话框画面
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



(action_tile "addlay_j" "(cjtc-1)")

(start_dialog) ; 令对话框开始接受使用者输入资料
(unload_dialog dcl_flag)) ; 释放DCL档案
; 函式DCL_CONC至此结束
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun cjtc-1()
(setq index1 0)
(setvar "cmdecho" 0)
(setq dnum (get_tile "dnum_c"))
(setq numy (get_tile "num_c"))
(setq num (atoi numy))

;(setq num (getreal "\n How 输入要创建图层的数量:")) ;输入拆图量
;(setq dnum (getstring "\n 请输入专案代号:")) ;输入图号
(setq index 1.0) ;付值index=1
(repeat 9
(if (> num (- index 1)) ;此函数可判别每一个 expr 并重复执行 number 所叙述的次数, 然后返回最后一个表达式的值。 ;其中 int 将代表任何的正整型数。
;如果拆图量大于0则继续执行
(progn (setq lay (strcat dnum "-00" (rtos index 2 0)))
;strcat连接后面的字符串,(rtos index 2 0)返回10进制,连接为图名
(setq index (1+ index)) ;图名每次加1
(autop)
)
)
) ;以上为将输入的值转化为图号
(if (> num 9)
(repeat 90
(if (> num (- index 1))
(progn (setq lay (strcat dnum "-0" (rtos index 2 0)))

(setq index (1+ index))
(autop)
)
)
)
)
(if (> num 99)
(repeat 900
(if (> num (- index 1))
(progn (setq lay (strcat dnum "-" (rtos index 2 0)))
(setq index (1+ index))
(autop)
)
)
)
)
(redraw)
(princ)
)
;-----------------------------------------
(defun autop (/ pt sera ch ly ents)
(setq index1 (+ 1 index1))
(setq layecol '(191 50 90 130 170 210 30 82 150 10 161))
(setq layec (nth index1 layecol))
(if (= layec nil)
(progn
(setq index1 1)
(setq layec 7)
))
(command "-layer" "Make" lay "Color" layec "" "")

) ;---------------------------------------

 楼主| 发表于 2004-6-19 16:42:00 | 显示全部楼层
(defun kjcjtc-1 (/ num dnum lay)
(setq index1 0)
(setvar "cmdecho" 0)
(setq num (getreal "\n How 输入要创建图层的数量:")) ;输入拆图量
(setq dnum (getstring "\n 请输入专案代号:")) ;输入图号
(setq index 1.0) ;付值index=1
(repeat 9
(if (> num (- index 1)) ;此函数可判别每一个 expr 并重复执行 number 所叙述的次数, 然后返回最后一个表达式的值。 ;其中 int 将代表任何的正整型数。
;如果拆图量大于0则继续执行
(progn (setq lay (strcat dnum "-00" (rtos index 2 0)))
;strcat连接后面的字符串,(rtos index 2 0)返回10进制,连接为图名
(setq index (1+ index)) ;图名每次加1
(autop)
)
)
) ;以上为将输入的值转化为图号
(if (> num 9)
(repeat 90
(if (> num (- index 1))
(progn (setq lay (strcat dnum "-0" (rtos index 2 0)))
;(if (= layec nil)
;(setq index1 1))
(setq index (1+ index))
(autop)
)
)
)
)
(if (> num 99)
(repeat 900
(if (> num (- index 1))
(progn (setq lay (strcat dnum "-" (rtos index 2 0)))
(setq index (1+ index))
(autop)
)
)
)
)
(redraw)
(princ)
)
;-----------------------------------------
(defun autop (/ pt sera ch ly ents)
(setq index1 (+ 1 index1))
(setq layecol '(191 50 90 130 170 210 30 82 150 10 161))
(setq layec (nth index1 layecol))
(if (= layec nil)
(progn
(setq index1 1)
(setq layec 7)
))
(command "-layer" "Make" lay "Color" layec "" "")

) ;---------------------------------------

发表于 2004-6-19 21:44:00 | 显示全部楼层
记住,在对话框没有关闭前执行(command ....)是一定会down机的。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2004-6-20 19:30:00 | 显示全部楼层
非常感谢大侠指点,不知为何时有不能回贴的状况使得无法言谢抱歉!
 楼主| 发表于 2004-6-25 00:17:00 | 显示全部楼层
大侠我还要加一个按钮“清除未使用图层”
执行的程式为:
(command "purge" "la" "*" "n")
自已试了很多次不是执行档机就是执行无反映请再指点
发表于 2004-6-25 08:11:00 | 显示全部楼层
看看3楼的第一句话
 楼主| 发表于 2004-6-25 12:42:00 | 显示全部楼层
只用一个按钮,或用"确定"按钮时能做出来,但用到两人按钮时如何试都不成功,我现有的学习资料中找不到这方面的范例.


我不是不愿自已努力试和学习而是真的找不到方法


请大侠明示!
发表于 2004-6-25 13:03:00 | 显示全部楼层
什么叫两人按钮?
 楼主| 发表于 2004-6-25 14:14:00 | 显示全部楼层
lisp文件,注意新加部分
发表于 2004-6-25 14:16:00 | 显示全部楼层
??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:48 , Processed in 0.192110 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表