自贡黄明儒 发表于 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:}
页: 1 [2] 3
查看完整版本: 请问如何判断直线的两个端点都在屏幕上?