找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 120|回复: 0

[API应用] XDrxAPI 14 个 ViewPort 函数帮助手册

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2025-5-27 16:04:24 | 显示全部楼层 |阅读模式

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

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

×
1
函数名称: xdrx-vptrec-create

描述:
创建并配置视口布局,支持2分割或4分割模式

调用格式:
(xdrx-vptrec-create [视口名称] [分割数])

参数说明:
* [视口名称]: 可选参数,视口配置名称(字符串)
* [分割数]: 可选参数,2或4表示分割数量(整数)

返回值:
- T: 创建成功
- nil: 创建失败

示例用法1:
(xdrx-vptrec-create "我的视口" 4)
; 创建4分割视口布局

示例用法2:
(xdrx-vptrec-create)
; 使用默认设置创建2分割视口

实现特点:
1. 自动清除现有视口配置
2. 支持2/4两种分割模式
3. 默认使用2D线框视觉样式
4. 自动设置标准视图方向

注意事项:
1. 分割数只能是2或4
2. 不指定名称时使用默认配置
3. 会覆盖同名的现有视口配置
------------------------------------------------------------
2
函数名称: xdrx-viewport-frozen-layer-list

描述:
获取视口中被冻结的图层列表

调用格式:
(xdrx-viewport-frozen-layer-list <视口实体名>)

参数说明:
* <视口实体名>: 目标视口的实体名(ENAME)

返回值:
返回被冻结图层名称的列表,格式为:
("图层1" "图层2" ...)

示例用法1:
(xdrx-viewport-frozen-layer-list (car (entsel)))
; 获取所选视口的冻结图层列表

示例用法2:
(setq frozen-layers (xdrx-viewport-frozen-layer-list vport-ent))
; 保存视口冻结图层到变量

实现特点:
1. 精确获取视口特定冻结状态
2. 返回标准LISP列表格式
3. 自动处理实体打开/关闭

注意事项:
1. 参数必须是有效的视口实体
2. 若无冻结图层返回nil
3. 不影响当前图层状态
------------------------------------------------------------
3
函数名称: xdrx-viewport-getactive
函数别名: xdrx-viewport-get

描述:
获取当前活动视口或根据条件查询视口信息

调用格式:
(xdrx-viewport-getactive [参数] [T])

参数说明:
* [参数]: 可选参数,支持多种类型:
  - 无参数: 返回当前活动视口
  - 实体名: 查询指定视口
  - 布局名: 查询布局中的视口
  - 点坐标: 查询包含该点的视口
  - 数字: 查询指定编号的视口
* [T]: 可选参数,控制返回格式

返回值:
根据参数不同返回:
- 当前视口实体名
- 指定视口信息
- 包含点的视口列表
- 布局中的视口列表

示例用法1:
(xdrx-viewport-getactive)
; 获取当前活动视口

示例用法2:
(xdrx-viewport-getactive "布局1" T)
; 获取布局1中的所有视口

实现特点:
1. 支持多种查询模式
2. 自动处理布局和模型空间
3. 智能返回最匹配结果

注意事项:
1. 无参数时返回当前视口
2. T参数控制是否返回全部匹配
3. 点查询返回包含该点的最小视口
------------------------------------------------------------
4
函数名称: xdrx-viewport-getatclip

描述:
获取与裁剪实体关联的视口

调用格式:
(xdrx-viewport-getatclip <裁剪实体名>)

参数说明:
* <裁剪实体名>: 与视口关联的裁剪实体名(ENAME)

返回值:
返回关联视口的实体名,若未找到返回nil

示例用法1:
(xdrx-viewport-getatclip (car (entsel)))
; 获取所选裁剪实体关联的视口

示例用法2:
(setq vp (xdrx-viewport-getatclip clip-ent))
; 保存关联视口到变量

实现特点:
1. 通过持久反应器查找关联
2. 自动处理实体打开/关闭
3. 返回第一个匹配的视口

注意事项:
1. 参数必须是有效的裁剪实体
2. 仅返回第一个关联视口
3. 若无关联视口返回nil
------------------------------------------------------------
5
函数名称: xdrx-viewport-getatpoint

描述:
获取包含指定点的视口列表

调用格式:
(xdrx-viewport-getatpoint <点坐标>)

参数说明:
* <点坐标>: 要查询的点坐标(2D或3D点)

返回值:
返回包含该点的视口实体名列表,格式为:
(视口1 视口2 ...)

示例用法1:
(xdrx-viewport-getatpoint (getpoint))
; 获取包含拾取点的视口

示例用法2:
(setq vports (xdrx-viewport-getatpoint '(100 200)))
; 查询包含(100,200)点的视口

实现特点:
1. 精确点包含检测
2. 自动处理布局和模型空间
3. 返回所有包含该点的视口

注意事项:
1. 参数必须是有效点坐标
2. 若无视口包含该点返回nil
3. 在模型空间中返回当前视口
------------------------------------------------------------
6
函数名称: xdrx-viewport-info

描述:
获取当前图形中所有视口的空间类型和位置信息

调用格式:
(xdrx-viewport-info)

参数说明:
无参数

返回值:
返回包含以下信息的列表:
1. 当前空间类型字符串("ModelSpace"或"PaperSpace")
2. 视口配置列表,每个子列表格式为:
   (编号 (左下角点) (右上角点))

示例用法:
(xdrx-viewport-info)
; 返回示例:("PaperSpace" (1 (0.0 0.0) (22.8538 9.0)) (2 (25.7 19.5) (231.3 175.5)))

实现特点:
1. 自动识别模型/图纸空间
2. 返回视口编号和精确坐标范围
3. 包含活动视口配置

注意事项:
1. 在模型空间只返回当前视口信息
2. 在图纸空间返回所有视口配置
3. 坐标值为WCS坐标系
------------------------------------------------------------
7
函数名称: xdrx-viewport-frozen-p

描述:
检查指定图层在视口中是否被冻结

调用格式:
(xdrx-viewport-frozen-p <视口实体名> <图层名/实体名>...)

参数说明:
* <视口实体名>: 目标视口的实体名(ENAME)
* <图层名/实体名>: 一个或多个图层名(字符串)或图层实体名(ENAME)

返回值:
如果所有指定图层在视口中都被冻结返回T,否则返回nil

示例用法1:
(xdrx-viewport-frozen-p vport-ent "图层1")
; 检查"图层1"在视口中是否冻结

示例用法2:
(xdrx-viewport-frozen-p vport-ent "图层1" "图层2" layer-ent)
; 检查多个图层是否都被冻结

实现特点:
1. 支持多图层批量检查
2. 同时支持图层名和图层实体
3. 全部冻结才返回T

注意事项:
1. 参数必须包含至少一个图层
2. 视口实体必须有效
3. 图层不存在视为未冻结
------------------------------------------------------------
8
函数名称: xdrx-viewport-make

描述:
创建新视口,支持多种创建方式

调用格式:
(xdrx-viewport-make)  ; 创建默认视口
(xdrx-viewport-make <多段线实体> [比例] [原点] [视图名] [视图实体])  ; 基于多段线创建
(xdrx-viewport-make <点1> <点2> [布局名] [视图名])  ; 通过两点创建

参数说明:
* <多段线实体>: 矩形多段线实体(ENAME)
* <比例>: 视口比例因子(实数)
* <原点>: 视口原点坐标(点)
* <视图名>: 视图名称(字符串)
* <视图实体>: 视图实体(ENAME)
* <点1>: 视口左下角点(点)
* <点2>: 视口右上角点(点)
* <布局名>: 目标布局名称(字符串)

返回值:
返回新创建视口的实体名

示例用法1:
(xdrx-viewport-make)  ; 创建默认视口

示例用法2:
(xdrx-viewport-make pline-ent 1.0 '(0 0) "VIEW1")  ; 基于多段线创建

示例用法3:
(xdrx-viewport-make '(0 0) '(100 50) "布局1")  ; 通过两点创建

实现特点:
1. 支持三种创建模式
2. 自动处理布局和视图
3. 精确控制视口尺寸和位置

注意事项:
1. 多段线必须是矩形
2. 比例因子必须大于0
3. 点坐标可以是2D或3D
------------------------------------------------------------
9
函数名称: xdrx-viewport-setcurrent

描述:
设置当前活动视口

调用格式:
(xdrx-viewport-setcurrent <视口编号或实体名>)

参数说明:
* <视口编号或实体名>: 视口编号(整数)或视口实体名(ENAME)

返回值:
返回设置成功的视口实体名

示例用法1:
(xdrx-viewport-setcurrent 1)  ; 设置编号为1的视口为当前

示例用法2:
(xdrx-viewport-setcurrent vport-ent)  ; 设置指定实体为当前视口

实现特点:
1. 支持编号和实体名两种方式
2. 自动处理模型/图纸空间切换
3. 自动处理布局切换

注意事项:
1. 在图纸空间才能切换视口
2. 视口编号必须在有效范围内
3. 视口实体必须属于当前图形
------------------------------------------------------------
10
函数名称: xdrx-viewport-setcurrentview
函数别名: xdrx-viewport-update

描述:
设置视口的当前视图,支持多种设置模式

调用格式:
(xdrx-viewport-setcurrentview)  ; 重置当前活动视口视图
(xdrx-viewport-setcurrentview <视口实体>)  ; 设置指定视口视图
(xdrx-viewport-setcurrentview <视口实体> <视图实体>)  ; 为视口设置指定视图
(xdrx-viewport-setcurrentview <视图实体>)  ; 设置当前视图

参数说明:
* <视口实体>: 目标视口实体名(ENAME)
* <视图实体>: 视图实体名(ENAME)

返回值:
设置成功返回T,否则返回nil

示例用法1:
(xdrx-viewport-setcurrentview)  ; 重置当前视口视图

示例用法2:
(xdrx-viewport-setcurrentview vport-ent)  ; 设置指定视口视图

示例用法3:
(xdrx-viewport-setcurrentview vport-ent view-ent)  ; 为视口设置指定视图

实现特点:
1. 支持四种视图设置模式
2. 自动处理UCS关联
3. 保持视图参数精确同步

注意事项:
1. 无参数时重置当前视口视图
2. 视图实体必须有效
3. 会同步更新关联的UCS
------------------------------------------------------------
11
函数名称: xdrx-viewport-setfrozenlyr

描述:
设置视口中冻结的图层

调用格式:
(xdrx-viewport-setfrozenlyr <视口实体> <图层列表>)

参数说明:
* <视口实体>: 目标视口实体名(ENAME)
* <图层列表>: 要冻结的图层名列表(字符串列表)

返回值:
设置成功返回T,否则返回nil

示例用法1:
(xdrx-viewport-setfrozenlyr vport-ent '("图层1" "图层2"))
; 在视口中冻结图层1和图层2

示例用法2:
(xdrx-viewport-setfrozenlyr vport-ent (list "A-WALL" "A-DOOR"))
; 冻结建筑墙体和门图层

实现特点:
1. 支持批量设置冻结图层
2. 直接修改视口图层状态
3. 立即生效无需刷新

注意事项:
1. 视口实体必须有效
2. 图层名区分大小写
3. 不影响其他视口的图层状态
------------------------------------------------------------
12
函数名称: xdrx-viewport-thaw-alllyr

描述:
解冻视口中所有被冻结的图层

调用格式:
(xdrx-viewport-thaw-alllyr <视口实体>)

参数说明:
* <视口实体>: 目标视口实体名(ENAME)

返回值:
解冻成功返回T,否则返回nil

示例用法1:
(xdrx-viewport-thaw-alllyr vport-ent)
; 解冻指定视口中所有图层

示例用法2:
(mapcar 'xdrx-viewport-thaw-alllyr (xdrx-viewport-info))
; 解冻所有视口中的冻结图层

实现特点:
1. 一键解冻所有冻结图层
2. 不影响其他视口的图层状态
3. 立即生效无需刷新

注意事项:
1. 视口实体必须有效
2. 仅影响当前视口
3. 不会修改图层的全局冻结状态
------------------------------------------------------------
13
函数名称: xdrx-viewport-thaw-lyr

描述:
解冻视口中指定的冻结图层

调用格式:
(xdrx-viewport-thaw-lyr <视口实体> <图层列表>)

参数说明:
* <视口实体>: 目标视口实体名(ENAME)
* <图层列表>: 要解冻的图层名列表(字符串列表)

返回值:
解冻成功返回T,否则返回nil

示例用法1:
(xdrx-viewport-thaw-lyr vport-ent '("图层1" "图层2"))
; 解冻视口中的图层1和图层2

示例用法2:
(xdrx-viewport-thaw-lyr vport-ent (list "A-WALL" "A-DOOR"))
; 解冻建筑墙体和门图层

实现特点:
1. 支持批量解冻指定图层
2. 精确控制视口图层状态
3. 立即生效无需刷新

注意事项:
1. 视口实体必须有效
2. 图层名区分大小写
3. 仅影响当前视口
------------------------------------------------------------
14
函数名称: xdrx-viewport-zoomfactors

描述:
获取视口的缩放比例因子

调用格式:
(xdrx-viewport-zoomfactors <视口实体>)

参数说明:
* <视口实体>: 目标视口实体名(ENAME)

返回值:
返回视口的缩放比例因子(实数)

示例用法1:
(setq scale (xdrx-viewport-zoomfactors vport-ent))
; 获取指定视口的缩放比例

示例用法2:
(mapcar 'xdrx-viewport-zoomfactors (xdrx-viewport-info))
; 获取所有视口的缩放比例列表

实现特点:
1. 精确计算视口显示比例
2. 支持模型空间和布局空间视口
3. 返回浮点数结果

注意事项:
1. 视口实体必须有效
2. 返回值>1表示放大,<1表示缩小
3. 比例因子基于视口与模型空间的比例关系
------------------------------------------------------------


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

本版积分规则

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

GMT+8, 2025-7-18 22:33 , Processed in 0.402430 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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