找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2282|回复: 7

[[coior=red]文档类] (XD::Doc:SafeZoom)安全的ZOOM

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-5-10 12:48:52 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Doc:SafeZoom
调用格式: (XD::Doc:SafeZoom e)
参数说明: e ---- 实体,选择集 或者 点表
返回值: T
函数简介: 判断实体,选择集或者点表平行于坐标轴的包围盒的四个点是否都在屏幕内,或者都在屏幕内但屏幕显示的很小的范围,这两种情况下,ZOOM到屏幕安全的范围内供SSGET选择集函数进行下一步操作。
函数来源: 原创
函数作者: Lispboy
适用版本: XDRX API 
最后更新时间: 2016-05-10
备注: 安全范围是包围盒上下距离屏幕(1/10)
点表做参数,点是WCS下。
演示图片: -

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 Lispboy 于 2016-5-10 15:13 编辑

  1. (defun XD::Doc:SafeZoom (e / box box1 h h1 pts tf x)
  2.   (setq tf (type e))
  3.   (cond
  4.     ((or (= 'ENAME tf)(= 'PICKSET tf))
  5.       (setq pts (xdrx_entity_box e))
  6.     )
  7.     ((= 'LIST tf)
  8.       (setq pts e)
  9.     )
  10.   )
  11.   (setq box (xdrx_points_box pts t)
  12.         h (getvar "viewsize")
  13.         h1 (- (cadr (last box)) (cadr (car box)))
  14.   )
  15.   (if (or
  16.         (XD::DOC:IsPntsOutView pts)
  17.         (< (distance (car box) (last box)) (/ h 6.0))
  18.       )
  19.     (progn
  20.       (setq box1 (xdrx_points_offset (/ h1 10.0) box))
  21.       (xdrx_document_zoomwindow (trans (car box1) 0 1) (trans
  22.                                                               (caddr box1) 0
  23.                                                               1
  24.                                                        )
  25.       )      t
  26.     )
  27.      nil
  28.   )
  29. )



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-5-10 15:03:39 | 显示全部楼层
getview4points 是 UCS ,entity_box 是 WCS,两者需要统一
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-5-10 15:09:28 | 显示全部楼层
应该返回 bool , 缩放了返回 T,后面用 zzoomPrevious, 没有缩放的时候结束不用处理

点评

听你的,修改了,ZOOM后返回T,否则NIL。 这个函数可以在UCS下用的,里面考虑了统一。  详情 回复 发表于 2016-5-10 15:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2016-5-10 15:15:48 | 显示全部楼层
csharp 发表于 2016-5-10 15:09
应该返回 bool , 缩放了返回 T,后面用 zzoomPrevious, 没有缩放的时候结束不用处理

听你的,修改了,ZOOM后返回T,否则NIL。 这个函数可以在UCS下用的,里面考虑了统一。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-8-30 09:17:34 | 显示全部楼层
我先运行了(setq e (car (xdrx_entsel "\n请拾取裁剪边界<退出>:" '((0 . "lwpolyline,circle,ellipse,spline")))))
得到的结果正常,   显示,请拾取裁剪边界<退出>:<图元名: -bc0e80>   
再运行 (XD::DOC:SafeZoom e),就直接nil了,这是为什么

点评

去重新下载下 裁剪插件的代码。  详情 回复 发表于 2016-8-31 18:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-31 18:15:47 | 显示全部楼层
houxianuong 发表于 2016-8-30 09:17
我先运行了(setq e (car (xdrx_entsel "\n请拾取裁剪边界:" '((0 . "lwpolyline,circle,ellipse,spline"))) ...

去重新下载下 裁剪插件的代码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

发表于 2019-1-19 16:16:57 | 显示全部楼层
发现个问题,如果是一条水平直线段,得出来的h1是0,(setq box1 (xdrx_points_offset (/ h1 10.0) box))这一句就出错了,是不是用包围盒对角线的距离好一些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

发表于 2019-1-19 16:34:43 | 显示全部楼层
事实上,(setq box (xdrx_points_box pts t))这一句时就得不到返回值了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 01:53 , Processed in 0.191294 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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