首页 > 编程学习 > Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐。为了把这个学习笔记凑够二十篇完结,今天再梳理一下关于对齐操作的命令,将数据对象与参考对象对齐的方法注意分为粗对齐和精确对齐。

粗对齐的方法

在导入数模和点云之后,通常点云是不在位置的。那么首先需要进行粗对齐。粗对齐的方法一般有最佳拟合和点对。

  1. 最佳拟合BEST FIT:最佳拟合通常用于数模和点云都比较干净,即没有脱离位置的杂物及噪点,并且位置差的不是太多,形状上也比较一致的情况。通常扫描规范,去除杂物的点云都可以先用最佳拟合进行粗对齐。

采用指定参考对象和指定数据对象方式创建最佳拟合

#设置最佳拟合对齐参数基准对象方式为指定的 "Specific" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE REFERENCE_OBJECTS ( "Specific" )
#设置最佳拟合对齐参数基准对象为指定的"1.igs" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE REFERENCE_OBJECTS SPECIFIC ( "1.igs" )
#设置最佳拟合对齐参数数据对象方式为指定的 "Specific" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE DATA_OBJECTS ( "Specific" )
#设置最佳拟合对齐参数数据对象为指定的"1.igs" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE DATA_OBJECTS SPECIFIC ( "1.stl" )
#将数据对象最佳拟合对齐到参考对象使用自动预对齐 名称为 "最佳拟合至参考 1"
ALIGN BEST_FIT DATA_TO_REFERENCE CREATE FIT_TO_REFERENCE_OBJECT_SURFACES USING_PRE_ALIGNMENT AUTOMATIC ( "BestFit1" )

或自动用全部参考对象和全部数据对象创建最佳拟合

DECLARE vStatus 
#设置最佳拟合对齐参数基准对象方式为全部 "All" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE REFERENCE_OBJECTS ( "All" )
#设置最佳拟合对齐参数数据对象方式为 "Surface" 
ALIGN BEST_FIT DATA_TO_REFERENCE OPTIONS CREATE DATA_OBJECTS ( "Surface" )
ALIGN BEST_FIT DATA_TO_REFERENCE CREATE FIT_TO_REFERENCE_OBJECT_SURFACES USING_PRE_ALIGNMENT AUTOMATIC ( "BestFit2") 
#接收一下有无错误
MACRO GET_ERROR_STATUS (vStatus)
MACRO ECHO ( $vStatus )
  1. 点对POINT_PAIRS:先选择要对齐的数据,进入点对以后会进入手动点对模式,这个模式是无法自动实现的。
#选对要对齐的数据对象1
TREEVIEW DATA SELECT ( 1, "On" )
开始点对
ALIGN POINT_PAIRS ( , )
  1. 矩阵对齐:在数据与参考对象对齐位置以后,为了保持正确的位置,可以将数据输出以后覆盖原来的文件就可以保持位置;也可以将现有的对齐导出为4X4矩阵保存下来,下次载入点云以后用导入矩阵的方法也可以对齐到保存的位置。
    首先保存位置矩阵
#将现有的对齐位置导出到文件11.txt中
ALIGN DATA_ALIGNMENT EXPORT_4X4 ( "D:\Align\11.txt", , )

在这里插入图片描述
然后从矩阵恢复数据对象位置

TREEVIEW DATA SELECT ( 1, "On" )
#将数据文件用矩阵移动到保存的位置,反转矩阵选项为On,不反转则为Off
ALIGN TRANSFORM_USING_MATRIX CREATE FROM_FILE SELECTED_OBJETS ( "D:\Align\11.txt", "Off", )

精确对齐的方法

精确对齐则是在粗对齐的基础上,通过在数据对象与参考对象上选择孔面等特征按照XYZ个方向进行特征对齐。这些进行对齐的特征被称为参考目标,这种方式也就是参考目标对齐。
常见的特征对齐方式为一面(3点构建1个面)和一个圆孔及一个长圆孔,即常用的六点定位,当然超过6个自由度的参考特征,就有特征会进行拟合。

  1. 创建参考特征:如3点(1面)1孔1长圆孔
  2. 选择这些特征创建为参考目标
    在这里插入图片描述
#获取特征名称,从索引号1-5依次创建
DECLARE vFeatName
DECLARE i 1
WHILE  $i<=5TREEVIEW OBJECT SELECT NONETREEVIEW FEATURE SELECT ( $i,"On")TREEVIEW FEATURE NAME GET ( $i,vFeatName)MEASURE REFERENCE_TARGET POINT FEATURE CREATE FROM_OBJECTS ("Align_${vFeatName}",$vFeatName)++i
ENDWHILE
  1. 设置每一个参考目标的对齐方向
    TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( X向On/off, Y向On/off, Z向On/off, 名称默认当前选择项 )
#设置参考特征的对齐方向
#参考目标1-Z1对齐Z向
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT ( 1, "On" )
TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( "Off", "Off","On" , )
#参考目标2-Z2对齐Z向
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT ( 2, "On" )
TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( "Off", "Off","On" , )
#参考目标3-Z3对齐Z向
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT ( 3, "On" )
TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( "Off", "Off","On" , )
#参考目标4-Hx1y1对齐XY向
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT ( 4, "On" )
TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( "On", "On","Off" , )
#参考目标5-HY2对齐Y向
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT ( 5, "On" )
TREEVIEW REFERENCE_TARGET POINT FEATURE PROPERTIES ALIGNMENT_DIRECTIONS ( "Off", "On","Off" , )
  1. 再选择参考目标并进行对齐,在对齐组中创建新的对齐方式 “参考目标 1”:,参考目标对齐完成。
#全选5个参考目标
TREEVIEW OBJECT SELECT NONE
TREEVIEW REFERENCE_TARGET SELECT RANGE ( 1, 5, "On" )
#创建参考目标对齐方式Ref_Target1并对齐
ALIGN REFERENCE_TARGETS CREATE ( { "Align_z1", "Align_z2", "Align_z3", "Align_Hx1y1", "Align_Hy2" }, "参考目标 1" )

在这里插入图片描述
以上就是将数据对象与参考对象用脚本进行对齐的方法。


本文链接:https://www.ngui.cc/zz/1918288.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000