mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
- Added getting and setting Material, VisMaterial and Props to XCAFDoc_Editor::Expand. - Added XCAFDoc_Editor::Extract to transfer part to a new location - XCAFDoc_Editor::Extract allows to extract a part as a component or simply extract to an empty label with attached colors, layers, materials, vismaterials and props - Added XCAFDoc_Editor::CloneMetaData to clone shape's attributes to new location - Added XCAFDoc_Editor::CloneShapeLabel to clone shape to new document - Added XCAFDoc_DocumentTool::Check*Tool methods to check an existing of an any tool - Protected against creating a new label for non-existent tools via extract or expand process
82 lines
2.2 KiB
Plaintext
82 lines
2.2 KiB
Plaintext
puts "============================================================================"
|
|
puts "0028104: Data Exchange - Extract sub-assembly (XDE)"
|
|
puts "============================================================================"
|
|
puts ""
|
|
|
|
pload DCAF
|
|
|
|
Close D0 -silent
|
|
Close D1 -silent
|
|
|
|
# Reading step file
|
|
ReadStep D0 [locate_data_file as1-oc-214-mat.stp]
|
|
|
|
# All copy
|
|
XNewDoc D1
|
|
XExtract D1 D0 0:1:1:1
|
|
|
|
# checking Props, labels structure and number of colors and shape
|
|
set err_compare_ref ""
|
|
set statD0 [XStat D0]
|
|
set statD1 [XStat D1]
|
|
set cur_list [split $statD0 \n]
|
|
set ref_list [split $statD1 \n]
|
|
set nb_ref [llength $ref_list]
|
|
set nb_cur [llength $cur_list]
|
|
set ref_Compare 0
|
|
set isNextLayer 0; set isNextColor 0
|
|
for { set i 0 } { $i < $nb_cur } { incr i } {
|
|
set refstr [lindex $ref_list $i]
|
|
set curstr [lindex $cur_list $i]
|
|
set isOK 1
|
|
if {[regexp "Number of colors" $refstr]} {
|
|
set isNextColor 1
|
|
} elseif {[regexp "Number of layers" $refstr]} {
|
|
set isNextLayer 1
|
|
} elseif {$isNextLayer || $isNextColor} {
|
|
set refProp [split $refstr " "]
|
|
set curProp [split $curstr " "]
|
|
if {[llength $refProp] != [llength $curProp]} {
|
|
set isOK 0
|
|
} else {
|
|
for { set j 0 } { $j < [llength $refProp] && $isOK} { incr j } {
|
|
set isFind 0
|
|
for { set k 0 } { $k < [llength $refProp] && $isOK} { incr k } {
|
|
if {[lindex $refProp $j] == [lindex $curProp $k]} {
|
|
set isFind 1
|
|
break
|
|
}
|
|
}
|
|
set isOK $isFind
|
|
}
|
|
}
|
|
set isNextLayer 0; set isNextColor 0
|
|
} elseif {$refstr != $curstr} {
|
|
set isOK 0
|
|
}
|
|
if {!$isOK} {
|
|
incr ref_Compare
|
|
append err_compare_ref " Reference data - $refstr\n"
|
|
append err_compare_ref " Current data - $curstr\n"
|
|
append err_compare_ref "----------------------------------------------\n"
|
|
}
|
|
}
|
|
|
|
if { $ref_Compare > 0} {
|
|
puts "Error : $ref_Compare differences with reference data found :\n$err_compare_ref"
|
|
} else {
|
|
puts "Comparison of current result with reference data - OK\n"
|
|
}
|
|
|
|
XGetOneShape res0 D0
|
|
XGetOneShape res1 D1
|
|
set propsD0 [XCheckProps D0]
|
|
set propsD1 [XCheckProps D1]
|
|
if { $propsD0 != $propsD1 } {
|
|
puts "Error: Incorrect extraction of shape properties"
|
|
}
|
|
checkprops res0 -equal res1
|
|
|
|
Close D0 -silent
|
|
Close D1 -silent
|