mandala 发表于 2011-11-1 11:13:35

如何做到通过鼠标点选,或手工输入?

要获得一个线型的名称,即可以通过鼠标点选对象获得,比如:
(setq oldlt (vla-get-Linetype (vlax-ename->vla-object(car(entsel)))))

又可直接输入线型名获得,如:
(setq oldlt (getstring "\n请指定线型名:"))

如何合并实现?如:
(prompt "请鼠标选择或手工输入所需的线型:")
以下…………………………(不会写了)?


yjr111 发表于 2011-11-1 12:01:52

这样是否满足要求?
(defun c:tt()
   (if (grread)(setq oldlt (getstring "\n请指定线型名:")))
   (if (= oldlt "")(setq oldlt (vla-get-Linetype (vlax-ename->vla-object(car(entsel))))))
)

ljpnb 发表于 2011-11-1 15:44:26

(if (setq en (entsel "\n选择物体或直接回车:"))
(setq
      oldlt (vla-get-Linetype (vlax-ename->vla-object (car en)))
    )
(setq oldlt (getstring "\n请指定线型名:"))
)

mandala 发表于 2011-11-1 16:51:23

谢谢楼上两位,我爱你们。
页: [1]
查看完整版本: 如何做到通过鼠标点选,或手工输入?