back
loading skill details...
从桩基础CAD图纸(DXF)中提取桩编号、坐标、桩径、桩顶标高等参数,生成Excel统计表。同时支持从等高线图层插值中风化/微风化岩面标高并计算入岩深度。适用于桩基础工程量统计、入岩深度分析、投标报价桩参数汇总。触发词:桩基图、桩编号、桩参数统计、DXF提取桩、等高线插值入岩深度。
--- name: dxf-pile-extraction description: 从桩基础CAD图纸(DXF)中提取桩编号、坐标、桩径、桩顶标高等参数,生成Excel统计表。同时支持从等高线图层插值中风化/微风化岩面标高并计算入岩深度。适用于桩基础工程量统计、入岩深度分析、投标报价桩参数汇总。触发词:桩基图、桩编号、桩参数统计、DXF提取桩、等高线插值入岩深度。 agent_created: true --- # DXF桩基参数提取 从桩基础施工图DXF中一键提取桩参数,支持等高线插值计算入岩深度。 ## 触发场景 - 用户提供桩基平面图DXF,需要提取桩编号/坐标/桩径/桩顶标高 - 用户提供含等高线的DXF,需要计算每根桩的入岩深度 - 桩基础工程量统计、投标报价桩参数汇总 - 需要将桩参数输出为Excel表格 ## 工作流程 ### 阶段1:分析DXF结构 用 `scripts/analyze_dxf.py` 快速了解DXF文件结构: ```bash python scripts/analyze_dxf.py <dxf路径> ``` 输出:实体类型统计、图层列表及实体数、桩相关图层识别结果。 查阅 `references/dxf_pile_patterns.md` 了解常见桩基图DXF模式。 ### 阶段2:提取桩参数 用 `scripts/extract_piles.py` 提取桩编号、坐标、桩径、桩顶标高: ```bash python scripts/extract_piles.py <dxf路径> <输出Excel路径.xlsx> [--datum 23.40] ``` 关键参数: - `--datum`:相对标高转绝对标高的基准值(±0.00=绝对xx.xxm),默认23.40 - `--encoding`:DXF编码(默认自动检测,可选gbk/utf-8) 脚本自动完成: 1. 识别桩轮廓(块内CIRCLE圆 → 圆心=桩心) 2. 提取编号标签(`Z1`~`Z419`格式,通常在`桩编号`图层) 3. 提取桩型/桩顶标高(`GZH01,H=-6.500`格式,`BASE-ZM-BH`图层) 4. 贪心最优匹配(编号↔圆↔标高,确保1:1无冲突) 5. 计算桩顶绝对标高 = 相对标高 + datum 6. 输出Excel:Sheet1桩参数表 + Sheet2汇总统计 ### 阶段3:等高线插值入岩深度(可选) 用 `scripts/interpolate_elevation.py` 从等高线图层插值岩面标高: ```bash python scripts/interpolate_elevation.py \ <含等高线的DXF路径> \ <桩参数Excel路径.xlsx> \ --layer g_sDgxLayer \ --sheet <中风化|微风化> ``` 参数说明: - `--layer`:等高线所在图层(默认`g_sDgxLayer`) - `--sheet`:写入Excel的Sheet类型(`中风化`或`微风化`) - `--column-offset`:新增列写入偏移(默认自动追加到最后一列) - `--k`:IDW插值最近点数(默认12) - `--power`:距离权重幂(默认2) 脚本自动完成: 1. 从等高线图层提取POLYLINE顶点 + TEXT标高标注 2. 最近距离匹配标高到等高线 3. 按桩坐标IDW插值岩面标高 4. 计算进入岩层深度 = 桩顶绝对标高 - 岩面标高 5. 计算层厚(中风化层 = 中风化面 - 微风化面) 6. 写入Excel新列 + 更新汇总Sheet ### 阶段4:标注桩编号到DXF 用 `scripts/label_piles.py` 在新图层标注桩编号: ```bash python scripts/label_piles.py <输入.dxf> <桩编号Excel.xlsx> <输出.dxf> ``` ## 重要的经验规则 ### 桩心识别(重点) - **优先查找块内的CIRCLE**:桩通常定义为块引用中的圆,圆心=桩心 - 世界坐标 = INSERT插入点 + 块内CIRCLE圆心 × 缩放比例 - **备选方案**:BASE-ZM-BH图层的2点LWPOLYLINE,起点P1=桩心(45°直径符号线) - **验证**:圆半径 = 桩径/2(600→300, 800→400, 1200→600, 1400→700, 2000→1000, 2200→1100) ### 编号匹配 - 使用贪心最优匹配(非简单最近邻),避免多对一冲突 - 排序所有(编号, 轮廓, 距离)对,逐个分配,已分配双方跳过 - 匹配完成后验证:无重复、无遗漏、连续编号 ### 等高线插值 - IDW反距离加权,p=2(距离平方反比) - k=12个最近点,可调整 - 两组等高线(中风化/微风化)覆盖范围可能不同,边缘区域插值可能失真 - 负层厚(微风化面高于中风化面)需红色标记,要求用户复核 ### 标高体系 - 桩顶标高是相对标高(相对±0.00),需用户提供基准值转为绝对标高 - 等高线标高是绝对标高,无需转换 - 入岩深度 = 桩顶绝对标高 - 岩面绝对标高 - 层厚 = 上层岩面 - 下层岩面(正=正常地质层序) ## 输出Excel格式 | 序号 | 桩编号 | 桩型 | 桩径(mm) | 桩顶相对标高(m) | 桩顶绝对标高(m) | 桩心坐标X | 桩心坐标Y | ...入岩参数... | |------|--------|------|----------|-----------------|-----------------|-----------|-----------|--------------| 含汇总Sheet:标高分类统计、桩型分布、入岩深度范围分布。 ## 依赖 ``` ezdxf>=1.3.0 openpyxl>=3.1.0 numpy scipy ```
don't have the plugin yet? install it then click "run inline in claude" again.