11
22
33proc DEM::xml::ShowMaterialRelationWindow { } {
4- # window name
5- set w .gid.windowmatrel
64
7- if {[winfo exist $w ]} {destroy $w }
8- toplevel $w
9- wm withdraw $w
10- set x [expr [winfo rootx .gid]+[winfo width .gid]/2-[winfo width $w ]/2]
11- set y [expr [winfo rooty .gid]+[winfo height .gid]/2-[winfo height $w ]/2]
12- wm geom $w +$x +$y
13- wm transient $w .gid
14- InitWindow $w [_ " Kratos Multiphysics - DEM - Material Relations" ] Kratos " " " " 1
155
166 set materials [list ]
177 foreach mat_node [DEM::write::GetMaterialsNodeList] {
@@ -20,22 +10,51 @@ proc DEM::xml::ShowMaterialRelationWindow { } {
2010 lappend materials $mat_name
2111 }
2212 }
23- W $materials
24-
25- set table $w .tree
26- ttk::treeview $table -columns $materials -displaycolumns $materials
27- foreach header $materials {
28- $table heading $header -text $header -anchor center
13+
14+ set relations [dict create]
15+
16+ foreach relation [DEM::write::GetMaterialRelationsNodeList] {
17+
18+ set mat_a [write::getValueByNode [$relation selectNodes " ./value\[ @n = 'MATERIAL_A'\] " ]]
19+ set mat_b [write::getValueByNode [$relation selectNodes " ./value\[ @n = 'MATERIAL_B'\] " ]]
20+ dict lappend relations $mat_a $mat_b
21+ if {$mat_a ne $mat_b } { dict lappend relations $mat_b $mat_a }
2922 }
30- pack $table
23+
24+ if {[llength $materials ]>0} {
25+ # window name
26+ set w .gid.windowmatrel
27+
28+ if {[winfo exist $w ]} {destroy $w }
29+ toplevel $w
30+ wm withdraw $w
31+ set x [expr [winfo rootx .gid]+[winfo width .gid]/2-[winfo width $w ]/2]
32+ set y [expr [winfo rooty .gid]+[winfo height .gid]/2-[winfo height $w ]/2]
33+ wm geom $w +$x +$y
34+ wm transient $w .gid
35+ InitWindow $w [_ " Kratos Multiphysics - DEM - Material Relations" ] Kratos " " " " 1
36+
37+
38+ set table $w .tree
39+ ttk::treeview $table -columns $materials -displaycolumns $materials
40+ foreach header $materials {
41+ $table heading $header -text $header -anchor center
42+ }
43+ pack $table
3144
32- set length [llength $materials ]
33- for {set i 0} { $i < $length } { incr i } {
34- set row [list ]
35- set ref_mat_name [lindex $materials $i ]
36- for {set j 0} { $j < $length } { incr j } {
37- lappend row X
45+ set length [llength $materials ]
46+ for {set i 0} { $i < $length } { incr i } {
47+ set row [list ]
48+ set ref_mat_name [lindex $materials $i ]
49+ for {set j 0} { $j < $length } { incr j } {
50+ set check_mat_name [lindex $materials $j ]
51+ set exists 0
52+ if {[dict exists $relations $ref_mat_name ]} {
53+ if {$check_mat_name in [dict get $relations $ref_mat_name ]} {set exists 1}
54+ }
55+ if {$exists } {lappend row V} {lappend row O}
56+ }
57+ $table insert " " end -id $ref_mat_name -text $ref_mat_name -values $row
3858 }
39- $table insert " " end -id $ref_mat_name -text $ref_mat_name -values $row
4059 }
4160}
0 commit comments