自贡黄明儒
发表于 2018-6-11 14:21:19
(command "_.zoom" "obj" (car(entsel)) "")
669423907
发表于 2018-6-11 20:34:43
首先非常感谢各位大师的回复。
我是想要这样标注:
(defun c:13()
(setq o(getpoint"\n请点选直线:"))
(if (setq s0 (ssget"c"o o '((0 . "line"))) ) (progn
(setq Ls (entget (ssname s0 0))
p1 (cdr (assoc 10 Ls))
p2 (cdr (assoc 11 Ls)) )
;如果p1 p2 都在屏幕内,则(command"dimlinear"p1 p2"\\")
;否则(progn (if (setq oo(getpoint o"\n请指定标注第二点:"))(command"dimlinear"o oo"\\") ) )
) )
(princ))
我不会写如何判断
669423907
发表于 2018-6-12 21:15:43
Andyhon 发表于 2018-6-12 08:57
;; 如果p1 p2 都在屏幕内,则
(cond
((and
谢谢Andyhon长老,的确达到效果了。随便请教一下
(ssget p1 '((0 . "LINE")))
(ssget p1 '((0 . "LINE")))
这两句一样,是什么作用?我去掉了一句,也是一样的效果,什么原理?
还有,如果p1 p2在平屏幕内,第一次可以p1 p2标注,第二次就不行呢?
669423907
发表于 2018-6-12 21:16:53
还有 :; 错误: 错误的点参数 虽然不影响
Andyhon
发表于 2018-6-12 21:30:17
sorry!
应是
(and
(ssget p1 '((0 . "LINE")))
(ssget p2 '((0 . "LINE")))
)
669423907
发表于 2018-6-12 21:40:46
是以点选线吗?
Andyhon
发表于 2018-6-12 22:09:58
本帖最后由 Andyhon 于 2018-6-12 22:18 编辑
程序贴着需求转...
而需求只有自己最清楚
自贡黄明儒
发表于 2018-6-12 22:12:01
还是我的简单哈,保证直线在屏上
669423907
发表于 2018-6-14 14:26:44
非常感谢各位大师,我发现这样也可以
(if (and(nentselp p1)(nentselp p2))
669423907
发表于 2018-6-14 14:28:27
自贡黄明儒 发表于 2018-6-12 22:12
还是我的简单哈,保证直线在屏上
谢谢黄大师,我只是要判断两点是否在屏幕上,并不是要把它移到屏幕上{:1_1:}