LK / To2D
将一份单视图拍图数据拆分为视图平面、外包围线框、可见线和隐藏线,便于分别排版、显示或传递给后续二维出图流程。
功能概览
拍图结果通常把一个视图的定位信息和线条结果组合在一起。“分解拍图数据”负责把这份组合数据还原成四类可独立使用的内容:表示视图位置与方向的平面、包围全部投影线条的矩形、可直接看到的轮廓线,以及被物体遮挡的隐藏线。组件只读取并拆分已经生成的拍图数据,不会重新投影模型,也不会改变其中的曲线。
组件位于 LK 的 To2D 分类,并作为主要可见组件提供。它适合作为拍图结果与常规 Grasshopper 平面、矩形及曲线处理之间的连接点。
适合什么时候用
- 需要把某个视图的可见线与隐藏线分开赋予不同显示方式或输出规则时。
- 需要利用视图外包围线框进行图纸排版、间距判断或范围检查时。
- 需要取得视图平面,作为后续几何定位、方向判断或平面变换的依据时。
- 需要检查一份拍图数据中是否实际包含可见轮廓或隐藏轮廓时。
工作流程
- 在上游先取得一份有效的单视图拍图数据;该数据应同时携带视图定位信息和投影线条结果。
- 把这份数据作为单个项目连接到“拍图数据”输入端,不要把普通曲线、矩形或原始三维模型直接接入。
- 读取“平面”和“外包围盒”,确认视图的位置、方向及二维占用范围符合预期。
- 分别使用“可见线”和“隐藏线”列表,根据制图需要进行预览、分类、排版或导出。
- 如果某类曲线列表为空,返回上游检查该视图是否确实产生了对应类别的投影线。
输入
| 端口 | 是否必需 | 接受的数据 | 数据结构与匹配 | 默认或空值行为 | 常见误接 |
|---|---|---|---|---|---|
| 拍图数据(V) | 必需 | 一份有效的单视图拍图数据,其中包含视图平面、矩形范围、可见线集合和隐藏线集合。 | 单项输入;组件一次拆分一个视图。事实未确认列表或数据树的逐项匹配行为,需要批量处理时应在外部按项目组织。 | 没有已确认的默认值。未提供数据或输入无法识别为拍图数据时,组件不会形成本次有效拆分结果。 | 不要接入原始三维几何、普通曲线列表、矩形、平面或包含多个视图的其他结果容器;它们都不能替代完整的单视图拍图数据。 |
输出
| 端口 | 得到什么 | 数据结构 | 空值行为 | 典型下游 |
|---|---|---|---|---|
| 平面(P) | 该视图的定位平面,表达视图结果所在位置及轴向。 | 单个平面,与输入的单个视图一一对应。 | 输入无效时没有可用平面;事实包未确认无投影线时平面的有效性,不应据此假定固定世界平面。 | 平面变换、方向判断、几何定位及基于平面的后续制图操作。 |
| 外包围盒(R) | 包围该视图可见线和隐藏线的矩形线框。 | 单个矩形,与输入视图对应,不是三维实体包围盒。 | 输入无效时没有可用矩形;若上游视图没有形成有效投影范围,需回到上游检查。 | 图纸排版、范围预览、碰撞或间距检查,以及页面占用尺寸判断。 |
| 可见线(V) | 从当前观察方向能够直接看到的投影曲线。 | 曲线列表;同一列表中的曲线均属于输入的同一视图。组件不在这里重新排序或合并曲线。 | 允许得到空列表,表示该份数据没有可供输出的可见线;这不应被解释为组件会自动生成替代轮廓。 | 实线显示、曲线整理、二维图纸预览、图层分类或文件导出。 |
| 隐藏线(H) | 从当前观察方向被其他部分遮挡的投影曲线。 | 曲线列表;与可见线分开输出,但仍属于同一视图。 | 允许得到空列表;可能表示该视图没有隐藏轮廓,也可能是上游结果未包含隐藏线,应结合可见线和范围共同判断。 | 虚线显示、隐藏轮廓分类、选择性过滤或 CAD 出图准备。 |
实际示例
假设上游已经为一个带内部凹槽的型材生成正视方向的单视图拍图数据。将该数据接入“拍图数据”后,“平面”给出这个正视图的放置位置和方向,“外包围盒”给出整张正视投影所占的矩形范围;外轮廓和从正面能看见的槽边进入“可见线”列表,被外壁遮住的内部边线进入“隐藏线”列表。
把可见线用于连续线显示,把隐藏线用于虚线显示,再用外包围盒检查该视图是否超出预定图纸区域。可观察结果是两组曲线保持在同一个视图位置,却能够采用不同的制图规则;移动或变换时若需要保持方向一致,可同时使用输出平面作为定位依据。若隐藏线列表为空,则先确认这个观察方向是否真的存在被遮挡边线,再检查上游拍图数据是否包含隐藏线,而不是在本组件中寻找隐藏线开关。
配合使用
- 上游应提供已经生成的单视图拍图数据;本组件承担的是拆分步骤,不负责从 Brep、曲面或拉伸体重新生成投影。
- 工作流程第 3 步取得的平面和外包围盒,可连接到接受平面或矩形的常规几何工具,用于定位及排版判断。
- 工作流程第 4 步取得的两类曲线,可分别进入显示、图层整理、曲线处理或二维文件输出链路。
- 需要整体移动视图时,应把平面、矩形和两类曲线视为同一组结果处理,避免只移动曲线而遗失其范围与定位关系。
常见问题与限制
- 为什么接入普通曲线后没有四项结果?
- 输入端虽然以通用数据形式接线,但它要求的是完整拍图数据。普通曲线只包含几何,不包含视图平面、包围矩形及可见线和隐藏线的分类关系。
- 为什么隐藏线输出为空?
- 该观察方向可能没有被遮挡的边,也可能是上游拍图结果没有包含隐藏线。先同时检查可见线与外包围盒是否有效,再回查上游结果。
- 组件会重新执行投影或更新拍图吗?
- 不会。它只拆分传入的数据。模型变化后若上游数据没有更新,本组件不会自行取得新的投影结果。
- 可以一次输入多个视图吗?
- 已确认端口为单项输入,一次处理一份视图数据。事实未确认列表或数据树的自动匹配方式,因此不要依赖未经核验的批量行为。
- 外包围盒为什么不是三维盒体?
- 该输出是视图投影线条的矩形范围,用于二维占位与排版;它不代表原始三维模型的空间包围体。
- 能否仅凭空曲线列表判断计算失败?
- 不能。某一类别为空可能符合该视图的真实情况。应综合检查输入是否有效、另一类曲线是否存在以及矩形范围是否成立。
V1.0.8.2 使用调整
- 拍图数据现在可以直接预览可见线、隐藏线和范围框,不必先分解才能查看。分解组件仍用于取得实际曲线、平面及范围数据,原有端口及连接方法不变。
- 检查流程可改为先在上游拍图组件打开预览,确认所需方向,再接本组件提取线条。对视图进行移动或旋转后,应看到对应位置的预览,再进行后续排版。