请各位看下我这个代码有没有什么问题,运行好像很不稳定
本帖最后由 Vroy 于 2012-6-2 16:19 编辑(if (= (substr THETYPE 1 1) "D")(setq TXTFILE "HANGER.TXT"))
(if (= (substr THETYPE 1 1) "Z")(setq TXTFILE "SUPPORT.TXT"))
(if (= (substr THETYPE 1 1) "L")(setq TXTFILE "CONNECT.TXT"))
(if (= (substr THETYPE 1 1) "T")(setq TXTFILE "SPRING.TXT"))
(if (= (substr THETYPE 1 1) "F")(setq TXTFILE "ACCESORY.TXT"))
(if (= (substr THETYPE 1 1) "G")(setq TXTFILE "ROOT.TXT"))
(setvar "osmode" 32)
(setq Pa(getpoint "\n插入点:"))
(setvar "osmode" 0)
(setq f (open (strcat txt_dir TXTFILE) "r") dv (read-line f))
(setq dv (read (strcat "(" dv ")"))
nu (- (length dv) (length (member (Read THETYPE) dv)))
) ;setq
(repeat (+ nu 1) (setq dv (read-line f)))
(setq f (close f)dv (read (strcat "(" dv ")")) MC (nth 1 dv) GDWJ (nth 2 dv) ex nil)
(while (not ex)
(princ "\n名称:< ")(princ MC)(princ " > ")
(if (= MC "U型吊板")
(princ " --标号与配套连接件对照表--\n |D=121620243036424856||\n |d=101012162024303642||"))
(princ "\n名称:< ")(princ MC)(princ " > ")
(if (= MC "单孔吊板")
(princ " --标号与配套连接件对照表--\n |D=121620243036424856||\n |d=1012162024303642 ||"))
(princ "**给定标号: ")
(princ GDWJ)
(setq WJZ (getreal "***"))
(if (member WJZ GDWJ) (setq ex T))
) ;while
;(setq dto (length GDWJ) dno (length (member WJZ GDWJ)) DZ (nth (- dto dno) wt))
(setq WJZ (rtos WJZ 2 0))
(if (< (strlen WJZ) 2) (SETQ WJZ (strcat "0" WJZ)))
(setq INSNAME (strcat ZDJ_DIR THETYPE "_" WJZ))
(COMMAND "REDRAW")
(setq f_DRZDJ (open (strcat INSNAME ".dwg") "r"))
(if f_DRZDJ (progn (command "insert" INSNAME Pa "" "" "")
(close f_DRZDJ))
(princ "\n此标号的块文件尚未建立!")
)
(PRINC )
============================
现象就是有的电脑能执行,有点电脑就无法执行。很不稳定。很容易就提示:命令: (SETQ THETYPE "D1")(LOAD"DR_ZDJ") 插入点:; 错误: 参数类型错误: stringp nil
引用的txt都是一些具体的参数。不在同一个文件夹下面。
这个是一个支吊架绘制的一个插件,主要原理是通过CAD操作把以前编辑好的支吊架模块以块的形式插入CAD图中。是很早的时候在R14下编的。时间过了很长了,很不稳定了,希望各位高手多提宝贵意见。 (setq f (open (strcat txt_dir TXTFILE) "r") dv (read-line f))中txt_dir是字符串还是什么? 谢谢版主的关注。我通过调试,也发现了这个问题,应该是说明文件夹的路径的一个字符串。问题就出在这上面了。如果把这个换成"文件夹路径",就一点问题也没有了。
追加一个问题,如果我把文件夹加入到支持文件搜索路径中去,能否用“txt_dir”表达。txt是文件夹名字。
页:
[1]