明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1370|回复: 4

新手写的画风管lisp(保存变量出问题),请指教

[复制链接]
发表于 2008-1-14 15:44 | 显示全部楼层 |阅读模式
(defun c:ff ( / ent str dis)
  (if (= str_s nil) (setq str_s (getvar "USERS1")))
  (setq k_lay (tblsearch "layer" "A_FG"))
  (if (null k_lay)
    (command "-layer" "n" "A_FG" "c" "7" "A_FG" "")
  )
  (command "-layer" "s" "A_FG" "")
  (setq str (getstring (strcat "\n风管宽度<" str_s ">:")))
  (if (= str "")
  (setq str str_s)
  (setvar "USERS1" str)
  (setq dis (atof str)))
  (setq ent (car (entsel)))
  (vla-offset (vlax-ename->vla-object ent) (* 0.5 dis))
  (vla-offset (vlax-ename->vla-object ent) (* -0.5 dis))
  (princ)
)
发表于 2008-1-14 16:37 | 显示全部楼层

(if (= str "")
  (setq str str_s)
  (setvar "USERS1" str)
  (setq dis (atof str)))

这一段 IF 函数的语法不对

 楼主| 发表于 2008-1-15 12:51 | 显示全部楼层

?不懂?

新手,能否指教一下?

发表于 2008-1-15 15:21 | 显示全部楼层
(defun c:ff ( / ent str dis)
  (cond (str_s)
        ((setq str_s (getvar "USERS1"))
         (if (not (numberp (read str_s)))
           (setq str_s "10");;比如为10,这样在系统变量 "USERS1" 为 "" 时...
         )
        )
  )
  (if (null (tblsearch "layer" "A_FG"))
    (command "_.layer" "n" "A_FG" "c" "7" "A_FG" "")
  )
  (command "_.layer" "s" "A_FG" "")
  (setq str (getstring (strcat "\n风管宽度 <" str_s ">:")))
  (if (= str "")
    (setq str str_s)
    (setq str_s (setvar "USERS1" str))
  )
  (setq dis (atof str))
  (setq ent (car (entsel)))
  (vla-offset (vlax-ename->vla-object ent) (* 0.5 dis))
  (vla-offset (vlax-ename->vla-object ent) (* -0.5 dis))
  (princ)
)
 楼主| 发表于 2008-1-18 11:18 | 显示全部楼层
谢谢楼上,我是新手,写的东西都还不是逻辑清楚,我再对比对比,思考思考,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 18:31 , Processed in 0.147344 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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