革天明 发表于 2011-5-21 20:43:47

如何加入关键字 连续偏移

;------------------------------------------------------
;连续偏移       YTM 2011年5月21日13:31:38
(defun c:DF ()
(setq MM (car(entsel "\n选择要==基准==偏移的对象或 <退出>:")))
(setq fx (getpoint "\n指定点以确定偏移所在一侧:"))
(while T
   (setq gb(abs(getvar 'offsetdist)))
   (setq dist (getdist "\n指定偏移距离:"))
   (IF (= DIST NIL) (SETQ DIST GB))
   (COMMAND ".offset" dist MM fx "")
)
)
;------------------------------------------------------
本程序用于选择基准偏移对象后连续偏移,但想加入关键字 模式A\模式B,模式B实现目前的效果,模式A实现普通偏移,只是换了一下快捷键,我对initget 和getkword不熟,怎么修改?谢谢赐教!

ZZXXQQ 发表于 2011-5-21 23:12:31

不知这样行不行

(defun c:DF ()
(initget 1 "A B")
(setq kk (getkword "选择方式A=普通/B=连续 :"))
(if (= kk "A") (progn
(setq MM (car(entsel "\n选择要==基准==偏移的对象或:")))
(setq dist (getdist "\n指定偏移距离:"))
(command ".OFFSET" dist)
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
) (progn
(setq MM (car(entsel "\n选择要==基准==偏移的对象或 <退出>:")))
(setq fx (getpoint "\n指定点以确定偏移所在一侧:"))
(while T
   (setq gb(abs(getvar 'offsetdist)))
   (setq dist (getdist "\n指定偏移距离:"))
   (IF (= DIST NIL) (SETQ DIST GB))
   (COMMAND ".offset" dist MM fx "")
)
))
(princ)
)

firstinti 发表于 2011-5-22 08:36:09

本帖最后由 firstinti 于 2011-5-22 08:36 编辑

initget 和getkword就是鸡肋,如果纯模式选择,用cond getstring就可以了,getkword可以54
页: [1]
查看完整版本: 如何加入关键字 连续偏移