AQ连接线段和直线圆弧ARC为多段线兼容组码10和11的坐标Z值组码38标高值不一致情形,兼容线端点有一定距离不重合情形→动态容差V238
优点:免去很多时候连接不成功导致需要查找原因问题,实现无担心连接为多段线→为标注长度SSC或顶点插入dcw高程点等操作开拓道路!
代码测试结果如下:

选择对象: 指定对角点: 找到 9 个

选择对象:
                  直线       图层: "0"
                           空间: 模型空间
                   颜色: 5 (蓝)    线型: BYLAYER
                    句柄 = 1648
                 自 点, X=876778.65011259  Y=2760521.50126666  Z=0.00000000
                 到 点, X=898511.98877021  Y=2756505.09785480  Z=9.00000000
          在当前 UCS 中。 长度 =22101.34623894,在 XY 平面中的角度 = 349.52965207
                  三维长度  =22101.34807141,与 XY 平面的角度 = 0.02333170
                  增量 X =21733.33865762,增量 Y = -4016.40341187,增量 Z =9.00000000

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 9    线型: BYLAYER
                    句柄 = 1647
                 自 点, X=908724.25910910  Y=2766717.36819381  Z=-83.00000000
                 到 点, X=898511.98877021  Y=2756505.09785480  Z=9.00000000
          在当前 UCS 中。 长度 =14442.33121597,在 XY 平面中的角度 = 225.00000000
                  三维长度  =14442.62424048,与 XY 平面的角度 = 0.36497850
                  增量 X =-10212.27033889,增量 Y = -10212.27033901,增量 Z =92.00000000

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 51    线型: BYLAYER
                    句柄 = 1646
                 自 点, X=916696.74524965  Y=2758739.54015444  Z=0.00000000
                 到 点, X=908778.48280921  Y=2766717.36819381  Z=22.00000000
          在当前 UCS 中。 长度 =11240.31228665,在 XY 平面中的角度 = 134.78530309
                  三维长度  =11240.33381628,与 XY 平面的角度 = 0.11214151
                  增量 X =-7918.26244045,增量 Y = 7977.82803936,增量 Z =22.00000000

                  圆弧       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 7 (白)    线型: BYLAYER
                    句柄 = 1645
                圆心 点, X=912710.02650531  Y=2756928.27852887  Z=0.00000000
                半径 4378.88056731
                起点 角度 245.42539696
                端点 角度 24.57457873
            长度 10634.59914886

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 51    线型: BYLAYER
                    句柄 = 1644
                 自 点, X=904750.97331311  Y=2760459.75611085  Z=0.00000000
                 到 点, X=910888.94862433  Y=2752946.03413982  Z=-37.00000000
按 ENTER 键继续:
          在当前 UCS 中。 长度 =9702.10074052,在 XY 平面中的角度 = 309.24545868
                  三维长度  =9702.17129199,与 XY 平面的角度 = 359.78149747
                  增量 X =6137.97531122,增量 Y = -7513.72197104,增量 Z =-37.00000000

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 9    线型: BYLAYER
                    句柄 = 1643
                 自 点, X=880858.88165547  Y=2766717.36819381  Z=-83.00000000
                 到 点, X=870646.61131658  Y=2756505.09785480  Z=9.00000000
          在当前 UCS 中。 长度 =14442.33121597,在 XY 平面中的角度 = 225.00000000
                  三维长度  =14442.62424048,与 XY 平面的角度 = 0.36497850
                  增量 X =-10212.27033889,增量 Y = -10212.27033901,增量 Z =92.00000000

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 51    线型: BYLAYER
                    句柄 = 1642
                 自 点, X=888826.89344074  Y=2758749.35640878  Z=82.00000000
                 到 点, X=880858.88165547  Y=2766717.36819381  Z=22.00000000
          在当前 UCS 中。 长度 =11268.47033171,在 XY 平面中的角度 = 135.00000000
                  三维长度  =11268.63006832,与 XY 平面的角度 = 359.69492627
                  增量 X =-7968.01178527,增量 Y = 7968.01178503,增量 Z =-60.00000000

                  圆弧       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 7 (白)    线型: BYLAYER
                    句柄 = 1641
                圆心 点, X=884844.64905169  Y=2756928.27852887  Z=0.00000000
                半径 4378.88056731
                起点 角度 245.42539696
                端点 角度 24.57457873
            长度 10634.59914886

                  直线       图层: "SXD-29011529"
                           空间: 模型空间
                   颜色: 51    线型: BYLAYER
                    句柄 = 1640
                 自 点, X=876885.59585949  Y=2760459.75611085  Z=0.00000000
                 到 点, X=883023.57117071  Y=2752946.63511265  Z=-37.00000000
          在当前 UCS 中。 长度 =9701.63532889,在 XY 平面中的角度 = 309.24770407
                  三维长度  =9701.70588375,与 XY 平面的角度 = 359.78148699
                  增量 X =6137.97531122,增量 Y = -7513.12099820,增量 Z =-37.00000000

连接结果:

选择对象:
                  LWPOLYLINE 图层: "0"
                           空间: 模型空间
                   颜色: 4 (青)    线型: BYLAYER
                    句柄 = 172b
            打开
        固定宽度 0.00000000
            面积   2.50951382E+08
            长度   114192.51533653

          于端点  X=870646.61131658  Y=2756505.09785480  Z=0.00000000
          于端点  X=880858.88165547  Y=2766717.36819381  Z=0.00000000
          于端点  X=888826.89344165  Y=2758749.35640787  Z=0.00000000
             凸度 -0.69468937
            圆心  X=884844.64905169  Y=2756928.27852887  Z=0.00000000
            半径 4378.88056731
       起点角度 24.57458865
         端点角度 245.42539696
          于端点  X=883023.57017249  Y=2752946.03459630  Z=0.00000000
          于端点  X=876845.20344681  Y=2760509.20195808  Z=0.00000000
          于端点  X=898511.98877021  Y=2756505.09785480  Z=0.00000000
          于端点  X=908724.25910910  Y=2766717.36819381  Z=0.00000000
          于端点  X=916692.27121048  Y=2758749.35571860  Z=0.00000000
             凸度 -0.69468931
            圆心  X=912710.02650531  Y=2756928.27852887  Z=0.00000000
            半径 4378.88056731
       起点角度 24.57457873
         端点角度 245.42539696
          于端点  X=910888.94762611  Y=2752946.03459630  Z=0.00000000
          于端点  X=904750.97331311  Y=2760459.75611085  Z=0.00000000
运行过程:

命令: AQ

--- 保存系统变量完成
--- 设置静默模式完成
=== AQ V23.8 开始运行:智能连接线段/圆弧为多段线 ===
选择对象: 指定对角点: 找到 9 个

选择对象:
--- 步骤1: 选择对象
选择了 9 个对象
--- 步骤2: 统一高程
目标高程: 0.000
对象1 (LINE): 高程不一致,正在更新...完成
对象2 (LINE): 高程不一致,正在更新...完成
对象3 (LINE): 高程不一致,正在更新...完成
对象4 (ARC): 高程一致
对象5 (LINE): 高程不一致,正在更新...完成
对象6 (LINE): 高程不一致,正在更新...完成
对象7 (LINE): 高程不一致,正在更新...完成
对象8 (ARC): 高程一致
对象9 (LINE): 高程不一致,正在更新...完成
--- 步骤3: 转换所有对象为多段线
处理对象1: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象2: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象3: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象4: ARC -> LWPOLYLINE(圆弧) [转换成功]
处理对象5: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象6: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象7: LINE -> LWPOLYLINE(直线) [转换成功]
处理对象8: ARC -> LWPOLYLINE(圆弧) [转换成功]
处理对象9: LINE -> LWPOLYLINE(直线) [转换成功]
成功处理 9 个对象
转换后实体列表长度: 9
转换后实体列表信息:
实体1: 起点(876778.650,2760521.501) 终点(898511.989,2756505.098)
实体2: 起点(908724.259,2766717.368) 终点(898511.989,2756505.098)
实体3: 起点(916696.745,2758739.540) 终点(908778.483,2766717.368)
实体4: 起点(910888.948,2752946.035) 终点(916692.271,2758749.356)
实体5: 起点(904750.973,2760459.756) 终点(910888.949,2752946.034)
实体6: 起点(880858.882,2766717.368) 终点(870646.611,2756505.098)
实体7: 起点(888826.893,2758749.356) 终点(880858.882,2766717.368)
实体8: 起点(883023.570,2752946.035) 终点(888826.894,2758749.356)
实体9: 起点(876885.596,2760459.756) 终点(883023.571,2752946.635)
--- 步骤4: 计算最短多段线长度
最短多段线长度: 8207.137
--- 步骤5: 智能端点匹配与排序
开始调用AQ_match_and_sort_entities函数...
AQ_match_and_sort_entities_v2函数开始,输入列表长度: 9
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b840> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b850> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b860> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b870> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b8a0> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b8b0> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b880> 完成(保护凸度)
调用AQ_reverse_lwpolyline_direction_v2函数,实体: <图元名: 1fd2f13b890> 完成(保护凸度)
AQ_match_and_sort_entities_v2函数完成,输出列表长度: 9AQ_match_and_sort_entities_v2函数调用完成
实体排序完成
排序后端点匹配情况:
实体1终点-实体2起点: 距离=0.000
实体2终点-实体3起点: 距离=54.224
实体3终点-实体4起点: 距离=10.787
实体4终点-实体5起点: 距离=0.001
实体5终点-实体6起点: 距离=16015.673
实体6终点-实体7起点: 距离=0.601
实体7终点-实体8起点: 距离=7386.762
实体8终点-实体9起点: 距离=0.000
--- 步骤6: 计算模糊距离
模糊距离: 82.071372
--- 步骤7: 精准端点调整
开始调用AQ_precise_adjust_endpoints函数...
--- 调用AQ_precise_adjust_endpoints_v2函数,模糊距离: 82.071372
--- 调整规则:仅当距离 < 模糊距离时才调整端点
处理实体1→实体2: 起点距离: 0.000000 终点距离: 14442.331216
处理实体2→实体3: 起点距离: 54.223700 终点距离: 11278.575951 → 微调起点至重合
调用AQ_force_entity_startpoint函数,实体: <图元名: 1fd2f13b850> 完成
处理实体3→实体4: 起点距离: 10.787137 终点距离: 8203.366375 (圆弧实体) → 圆弧实体,调整前一个实体终点
调用AQ_force_entity_endpoint函数,实体: <图元名: 1fd2f13b850> 完成
处理实体4→实体5: 起点距离: 0.001098 终点距离: 9702.099755 → 微调起点至重合
调用AQ_force_entity_startpoint函数,实体: <图元名: 1fd2f13b870> 完成
处理实体5→实体6: 起点距离: 16015.672924 终点距离: 22989.912097 (圆弧实体) → 距离超出容差(82.071),不调整
处理实体6→实体7: 起点距离: 0.600517 终点距离: 9702.099755 → 微调起点至重合
调用AQ_force_entity_startpoint函数,实体: <图元名: 1fd2f13b8b0> 完成
处理实体7→实体8: 起点距离: 7386.761811 终点距离: 7412.469831 → 距离超出容差(82.071),不调整
处理实体8→实体9: 起点距离: 0.000000 终点距离: 11268.470332
AQ_precise_adjust_endpoints_v2函数执行完成,是否调整: 是AQ_precise_adjust_endpoints_v2函数调用完成
端点精准调整完成
调整后端点验证:
实体1终点-实体2起点: 距离=0.000000
实体2终点-实体3起点: 距离=0.000000
实体3终点-实体4起点: 距离=0.000000
实体4终点-实体5起点: 距离=0.000000
实体5终点-实体6起点: 距离=16015.672924
实体6终点-实体7起点: 距离=0.000000
实体7终点-实体8起点: 距离=7386.761811
实体8终点-实体9起点: 距离=0.000000
--- 步骤8: 连接对象为多段线
准备连接 9 个排序后的多段线对象
检查可连接的实体对:
实体0-实体1: 可连接(距离=0.000 <= 容差=82.071)
实体1-实体2: 可连接(距离=0.000 <= 容差=82.071)
实体2-实体3: 可连接(距离=0.000 <= 容差=82.071)
实体3-实体4: 可连接(距离=0.000 <= 容差=82.071)
实体4-实体5: 不可连接(距离=16015.673 > 容差=82.071)
实体5-实体6: 可连接(距离=0.000 <= 容差=82.071)
实体6-实体7: 不可连接(距离=7386.762 > 容差=82.071)
实体7-实体8: 可连接(距离=0.000 <= 容差=82.071)
开始调用AQ_try_connection_v3函数...
AQ_try_connection_v3函数开始,模糊距离: 82.071372
筛选有效实体后列表长度: 9
尝试方法1: 使用PEDIT命令(修复版)
AQ_pedit_entities_v3函数开始
使用PEDIT连接 9 个实体,模糊距离: 82.071372
*** 错误: 参数太多 ***
PEDIT连接成功: <图元名: 1fd2f13b830>
AQ_pedit_entities_v3函数结束
AQ_try_connection_v3函数执行完成,是否成功: 是AQ_try_connection_v3函数调用完成
连接成功!
连接后对象颜色改为青色
连接后多段线顶点数: 10
凸度信息:
  凸度0: 0.000000
  凸度1: 0.000000
  凸度2: -0.694689
  凸度3: 0.000000
  凸度4: 0.000000
  凸度5: 0.000000
  凸度6: 0.000000
  凸度7: -0.694689
  凸度8: 0.000000
  凸度9: 0.000000
--- 恢复系统变量完成
=== AQ V23.8 运行结束 ===
录了个gif竟然有11M不给上传……




  • 上一篇:标注图层自动切换
  • 下一篇:没有了