布尔运算
使用说明
布尔运算是数字符号化的逻辑推演法,SuperMap引用这种逻辑运算方法对三维模型、二维面、三维面等对象间进行合并、求差、求交运算,输出结果数据。
布尔运算分为单对象处理和多对象处理。二/三维面对象之间只支持求差运算,模型对象间支持求差、合并和求交运算。
操作步骤
- 打开包含模型数据集的数据源,将需要进行布尔运算的数据集添加到球面场景中。
- 在"三维地理设计"选项卡上“三维分析”组内,单击“布尔运算”按钮,弹出“布尔运算”对话框。
图:“布尔运算”单模型处理对话框 图:“布尔运算”多模型处理对话框 - 设置完相关参数后,点击“确定”按钮,即可执行对象的布尔运算操作,在指定的结果数据源下生成以指定数据集名称命名的数据集。
单对象处理
单对象处理是单个A对象与另外多个B对象之间进行布尔运算,A对象与B对象可以在同一个图层也可以在不同图层,且不同的B对象也可以在不同图层,最后输出结果为单个对象。
- 目标对象:确定目标对象所在图层及ID。
- 图层:选择目标对象所在的数据集。
- 目标对象ID:通过按钮或输入ID值来选择对象。
- 操作对象,确认操作对象所在图层及对象ID。
- 工具栏:通过添加按钮在对象列表增加一条记录,通过删除按钮可以删除对象列表中的一条记录。
- 图层:通过下拉按钮选择操作对象所在的数据集。
- 对象ID:通过输入ID值来指定对应图层的操作对象。
- 操作:
- 布尔运算类型:包括求差、合并、求交操作。
- 图层类型:进行布尔运算的对象类型,包括模型、面。
- 结果数据:用于设置设置结果数据存放数据源及结果数据集名称。
多对象处理
- 多对象处理是多个A对象与单个B对象之间进行布尔运算,A对象与B对象可以在同一个图层也可以在不同图层,且不同的A对象也可以在不同图层,输出结果为多个对象。
- 目标对象,确认目标对象所在图层及对象ID。
- 工具栏:通过添加按钮在对象列表增加一条记录,通过删除按钮可以删除对象列表中的一条记录。
- 图层:通过下拉菜单选择目标对象所在的数据集。
- 对象ID:这里不需要设置目标对象ID。
- 操作对象,确认操作对象所在图层及对象ID。
- 图层:通过下拉菜单选择操作对象所在的数据集。
- 选中对象:通过按钮或输入ID值来选择操作对象。
- 操作:确定操作类型及图层类型。
- 操作类型:包括求差、合并还是求交操作。
- 图层类型:设置参与运算的图层类型,包括面和模型。
- 结果数据:设置结果数据存放路径和结果数据集名称。
如下所示为模型对象的布尔运算结果。
图:求差运算效果图 | 图:求并运算效果图 | 图:求交运算效果图 |
注意事项
- 选择进行布尔运算的模型对象必须是闭合的。
- SuperMap.xml增加节点Boolean3D_DetectAllTriangles,含义为布尔运算是否检测所有三角形,默认为false,若设置为true,系统会自动检测修改不符合布尔运算的模型,该配置会影响布尔运算性能。若SuperMap.xml中没有此节点。可以在SuperMap.xml中添加 <Boolean3D_DetectAllTriangles>true</Boolean3D_DetectAllTriangles>开启布尔运算检查三角形功能。此功能仅有11.1正式版及以后版本有此功能。