明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 669423907

[提问] 请问如何判断直线的两个端点都在屏幕上?

[复制链接]
发表于 2018-6-11 14:21:19 | 显示全部楼层
(command "_.zoom" "obj" (car(entsel)) "")
回复

使用道具 举报

 楼主| 发表于 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))
我不会写如何判断
回复

使用道具 举报

 楼主| 发表于 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标注,第二次就不行呢?
回复

使用道具 举报

 楼主| 发表于 2018-6-12 21:16:53 | 显示全部楼层
还有    :; 错误: 错误的点参数     虽然不影响
回复

使用道具 举报

发表于 2018-6-12 21:30:17 | 显示全部楼层
sorry!
应是
(and
   (ssget p1 '((0 . "LINE")))
   (ssget p2 '((0 . "LINE")))
  )
回复

使用道具 举报

 楼主| 发表于 2018-6-12 21:40:46 | 显示全部楼层
是以点选线吗?
回复

使用道具 举报

发表于 2018-6-12 22:09:58 | 显示全部楼层
本帖最后由 Andyhon 于 2018-6-12 22:18 编辑

程序贴着需求转...
而需求只有自己最清楚
回复

使用道具 举报

发表于 2018-6-12 22:12:01 来自手机 | 显示全部楼层
还是我的简单哈,保证直线在屏上
回复

使用道具 举报

 楼主| 发表于 2018-6-14 14:26:44 | 显示全部楼层
非常感谢各位大师,我发现这样也可以
(if (and(nentselp p1)(nentselp p2))
回复

使用道具 举报

 楼主| 发表于 2018-6-14 14:28:27 | 显示全部楼层
自贡黄明儒 发表于 2018-6-12 22:12
还是我的简单哈,保证直线在屏上

谢谢黄大师,我只是要判断两点是否在屏幕上,并不是要把它移到屏幕上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 12:45 , Processed in 0.182890 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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