Vroy 发表于 2012-6-2 16:17:16

请各位看下我这个代码有没有什么问题,运行好像很不稳定

本帖最后由 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都是一些具体的参数。不在同一个文件夹下面。

Vroy 发表于 2012-6-2 20:17:58

这个是一个支吊架绘制的一个插件,主要原理是通过CAD操作把以前编辑好的支吊架模块以块的形式插入CAD图中。是很早的时候在R14下编的。时间过了很长了,很不稳定了,希望各位高手多提宝贵意见。

cabinsummer 发表于 2012-6-2 20:20:28

(setq f (open (strcat txt_dir TXTFILE) "r") dv (read-line f))中txt_dir是字符串还是什么?

Vroy 发表于 2012-6-3 10:28:24

谢谢版主的关注。我通过调试,也发现了这个问题,应该是说明文件夹的路径的一个字符串。问题就出在这上面了。如果把这个换成"文件夹路径",就一点问题也没有了。
追加一个问题,如果我把文件夹加入到支持文件搜索路径中去,能否用“txt_dir”表达。txt是文件夹名字。
页: [1]
查看完整版本: 请各位看下我这个代码有没有什么问题,运行好像很不稳定