01获取CAD图框图标

LK COMPONENT DOCS

01获取CAD图框

从一份标准 DWG 中读取图框块、真实属性键、外框和有效绘图区,并把它们整理为后续批量图框流程可直接使用的图框数据。

功能概览

这是 CAD 图框工作流的第一步。输入的 DWG 必须包含至少一个图框块实例,并在块外提供两个闭合、共面且可识别为矩形的范围线:图层末端名称为 LK_WK 的矩形表示图框外包围框,图层末端名称为 LK_NK 的矩形表示有效绘图区域。图层可以位于嵌套层级中,只要完整路径的最后一级名称符合要求即可。

组件读取图框块名称、模板单位、块中存在的属性键及其默认内容,并把两个矩形转换到图框自身的局部基准中。成功读取后会保留最近结果,普通的下游求解不需要反复导入 DWG。路径变化后再次触发会读取新文件;文件缺失、无法导入、没有块实例或缺少任一有效矩形时不会输出有效图框。

01获取CAD图框逻辑教程图
三个必要部分来自同一 DWG:一个图框块实例、LK_WK 外框矩形和 LK_NK 有效绘图区矩形。

适用场景

  • 把公司或项目已有的标准 DWG 图框作为批量出图模板。
  • 先取得模板真实存在的属性键,再为每张图纸准备对应属性值。
  • 读取有效绘图区,供后续图框比例预计算和图元放置使用。
  • 将同一标准模板重复用于多张图框,而不在每次普通求解时重新读取文件。

工作流程

  1. 在 DWG 中准备一个图框块实例,并确认需要填写的图签字段已作为块属性存在。
  2. 在块外放置两个闭合平面矩形:外框位于末端名称为 LK_WK 的图层,有效绘图区位于末端名称为 LK_NK 的图层。
  3. 将 DWG 文件路径连接到“CAD图框路径”。环境变量和路径两侧引号可以被识别,但路径必须指向现有文件。
  4. 把“获取”从假切换为真,或按下组件上的获取按钮,执行一次模板读取。
  5. 将“图框类”输出连接到图框属性检查、比例预计算、分解或最终生成与导出组件。

输入

端口是否必需数据与结构默认、匹配与误接说明
CAD图框路径(P)必需单个 DWG 文件路径。路径可包含环境变量,也可带成对引号;读取前会整理这些内容。文件必须存在且可被 Rhino 读取。不要输入文件夹路径或非 DWG 模板。
获取(G)可选单个布尔值,作为读取触发。默认假。从假切换为真时读取;路径改变或尚无缓存结果时,真值也会触发读取。组件按钮可独立触发。普通上游变化不会在没有触发条件时反复导入。

输出

端口结果与结构典型下游
图框类(B)单项图框数据,包含模板来源、图框块、模板单位、块属性、有效绘图区和外包围框。只有所有必要部分均有效时才输出。03预计算图框比例、图框分解、图框属性准备以及最终生成图框并导出 CAD 的工作流。

实际示例

准备一份 A3 标准图框 DWG,其中有一个名为“A3横版”的图框块,块属性包含“DRAWING_NO”和“PROJECT”。在块外绘制 420×297 的外框矩形并放到“模板::LK_WK”,再绘制扣除标题栏后的有效区域矩形并放到“模板::LK_NK”。连接文件路径并把“获取”切换为真后,组件输出一个有效图框。后续分解可取得两个范围和模板属性;比例组件可使用有效绘图区计算模型范围所需比例。如果把 LK_NK 曲线改成开放折线,重新触发后会报告找不到有效矩形,并停止输出新图框。

设置与交互

  • “获取”布尔端采用触发式使用:从假切换为真时读取,组件上的获取按钮也可以执行同一操作。
  • 成功读取的最近结果会保留并继续向下游提供,避免每次普通求解都重新打开 DWG。
  • 更换路径后应重新触发;新路径、文件修改时间和模板内容属于随后图框流程的重要来源信息。

配合使用

  • 先将输出连接到图框分解组件,核对模板属性键、有效绘图区和外框是否符合预期。
  • 把同一输出连接到“03预计算图框比例”,并为每组待出图图元提供矩形范围。
  • 使用“02图框属性”为每张图纸封装键值;键应来自模板真实存在的属性。
  • 最终把图框数据交给生成与导出组件,由该组件复制原生块并写入有效属性。

常见问题与限制

为什么提示没有找到图框块实例?
DWG 中必须存在块实例,仅有散开的线条或块定义而没有已放置实例不足以形成模板。
为什么明明有 LK_NK 或 LK_WK 图层仍读取失败?
对应图层上必须有闭合、平面、尺寸非零且可识别为矩形的曲线。一般闭合轮廓或开放折线不符合要求。
嵌套图层是否可用?
可以。完整路径可包含父图层,只要末端名称分别为 LK_NK 和 LK_WK,且曲线位于对应图层。
一个 DWG 有多个块实例时会怎样?
组件会选择一个图框候选,而不是输出块列表。标准模板应避免放置多个可能被误认为图框的实例。
为什么修改文件后页面仍显示旧结果?
模板读取结果会保留。修改 DWG 后重新触发“获取”,让组件读取当前文件内容。