Skip to content

Commit 790c050

Browse files
Merge pull request #813 from KratosMultiphysics/dem/mat-rel-window
Dem/mat rel window
2 parents c5944c0 + a87ae53 commit 790c050

3 files changed

Lines changed: 61 additions & 3 deletions

File tree

kratos.gid/apps/DEM/start.tcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ proc ::DEM::LoadMyFiles { } {
3333
uplevel #0 [list source [file join $dir xml material_relations MaterialRelations.tcl]]
3434

3535
uplevel #0 [list source [file join $dir xml XmlController.tcl]]
36+
uplevel #0 [list source [file join $dir xml material_relations material_relations_window.tcl]]
3637
uplevel #0 [list source [file join $dir write write.tcl]]
3738
uplevel #0 [list source [file join $dir write writeMDPA_Parts.tcl]]
3839
uplevel #0 [list source [file join $dir write writeMDPA_Inlet.tcl]]

kratos.gid/apps/DEM/xml/XmlController.tcl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,6 @@ proc DEM::xml::MaterialRelationsValidation { } {
135135
return $err
136136
}
137137

138-
proc DEM::xml::ShowMaterialRelationWindow { } {
139-
140-
}
141138

142139

143140
DEM::xml::Init
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
3+
proc DEM::xml::ShowMaterialRelationWindow { } {
4+
5+
6+
set materials [list ]
7+
foreach mat_node [DEM::write::GetMaterialsNodeList] {
8+
set mat_name [write::getValueByNode $mat_node]
9+
if {$mat_name ni $materials} {
10+
lappend materials $mat_name
11+
}
12+
}
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 }
22+
}
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
44+
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 OK} {lappend row MISSING}
56+
}
57+
$table insert "" end -id $ref_mat_name -text $ref_mat_name -values $row
58+
}
59+
}
60+
}

0 commit comments

Comments
 (0)