First version of occ tree without tix

This commit is contained in:
Gerhard Kitzler 2016-11-11 12:13:33 +01:00
parent 0b8725795b
commit 295e100030

View File

@ -39,7 +39,7 @@ proc occdialogbuildtree {} {
global entities global entities
set w .occ_dlg set w .occ_dlg
set hlist [$w.mtre subwidget hlist] #set hlist [$w.mtre subwidget hlist]
set entities [Ng_GetOCCData getentities] set entities [Ng_GetOCCData getentities]
set nrentities [expr [llength $entities]] set nrentities [expr [llength $entities]]
@ -47,57 +47,71 @@ proc occdialogbuildtree {} {
if {$nrentities != 0} { if {$nrentities != 0} {
$hlist add Topology -itemtype text -text "Topology" #$hlist add Topology -itemtype text -text "Topology"
$hlist add Topology/CompSolids -itemtype text -text "Composite Solids" -data "Composite Solids" #$hlist add Topology/CompSolids -itemtype text -text "Composite Solids" -data "Composite Solids"
$hlist add Topology/FreeSolids -itemtype text -text "Free Solids" -data "Free Solids" #$hlist add Topology/FreeSolids -itemtype text -text "Free Solids" -data "Free Solids"
$hlist add Topology/FreeShells -itemtype text -text "Free Shells" -data "Free Shells" #$hlist add Topology/FreeShells -itemtype text -text "Free Shells" -data "Free Shells"
$hlist add Topology/FreeFaces -itemtype text -text "Free Faces" -data "Free Faces" #$hlist add Topology/FreeFaces -itemtype text -text "Free Faces" -data "Free Faces"
$hlist add Topology/FreeWires -itemtype text -text "Free Wires" -data "Free Wires" #$hlist add Topology/FreeWires -itemtype text -text "Free Wires" -data "Free Wires"
$hlist add Topology/FreeEdges -itemtype text -text "Free Edges" -data "Free Edges" #$hlist add Topology/FreeEdges -itemtype text -text "Free Edges" -data "Free Edges"
$hlist add Topology/FreeVertices -itemtype text -text "Free Vertices" -data "Free Vertices" #$hlist add Topology/FreeVertices -itemtype text -text "Free Vertices" -data "Free Vertices"
$w.tree insert {Topology} end -id "CompSolids" -text "Composite Solids"
$w.tree insert {Topology} end -id "FreeSolids" -text "Free Solids"
$w.tree insert {Topology} end -id "FreeShells" -text "Free Shells"
$w.tree insert {Topology} end -id "FreeFaces" -text "Free Faces"
$w.tree insert {Topology} end -id "FreeWires" -text "Free Wires"
$w.tree insert {Topology} end -id "FreeEdges" -text "Free Edges"
$w.tree insert {Topology} end -id "FreeVertices" -text "Free Vertices"
# $hlist add SingularEntities -itemtype text -text "Entities marked as singular" # $hlist add SingularEntities -itemtype text -text "Entities marked as singular"
$w.tree item "Topology" -open true
set i [expr 0] set i [expr 0]
while {$i < $nrentities} { while {$i < $nrentities} {
set entity [lindex $entities [expr $i]] set entity [lindex $entities [expr $i]]
incr i 1 incr i 1
set entityname [lindex $entities [expr $i]] set entityname [lindex $entities [expr $i]]
$hlist add Topology/$entity -text $entityname -data $entityname #$hlist add Topology/$entity -text $entityname -data $entityname
set myroot [string range $entity 0 [string last / $entity]-1]
$w.tree insert $myroot end -id $entity -text $entityname
incr i 1 incr i 1
$w.mtre close Topology/$entity #$w.mtre close Topology/$entity
} }
$w.mtre autosetmode #$w.mtre autosetmode
$w.mtre open Topology #$w.mtre open Topology
$w.mtre close Topology/CompSolids #$w.mtre close Topology/CompSolids
$w.mtre close Topology/FreeSolids #$w.mtre close Topology/FreeSolids
$w.mtre close Topology/FreeShells #$w.mtre close Topology/FreeShells
$w.mtre close Topology/FreeFaces #$w.mtre close Topology/FreeFaces
$w.mtre close Topology/FreeWires #$w.mtre close Topology/FreeWires
$w.mtre close Topology/FreeEdges #$w.mtre close Topology/FreeEdges
$w.mtre close Topology/FreeVertices #$w.mtre close Topology/FreeVertices
set i [expr 0] set i [expr 0]
while {$i < $nrentities} { while {$i < $nrentities} {
set entity [lindex $entities [expr $i]] set entity [lindex $entities [expr $i]]
$w.mtre close Topology/$entity #$w.mtre close Topology/$entity
$w.tree item $entity -open false
incr i 2 incr i 2
} }
set faces [Ng_OCCCommand getunmeshedfaceinfo] set faces [Ng_OCCCommand getunmeshedfaceinfo]
set nrfaces [expr [llength $faces]] set nrfaces [expr [llength $faces]]
if {$nrfaces >= 2} { if {$nrfaces >= 2} {
$hlist add ErrorFaces -itemtype text -text "Faces with surface meshing error" #$hlist add ErrorFaces -itemtype text -text "Faces with surface meshing error"
$w.mtre open ErrorFaces $w.tree insert {} -id ErrorFaces -text "Faces with surface meshing error"
#$w.mtre open ErrorFaces
$w.tree item ErrorFaces -open true
set i [expr 0] set i [expr 0]
while {$i < $nrfaces} { while {$i < $nrfaces} {
set entity [lindex $faces [expr $i]] set entity [lindex $faces [expr $i]]
set myroot [string range $entity 0 [string last / $entity]-1]
incr i 1 incr i 1
set entityname [lindex $faces [expr $i]] set entityname [lindex $faces [expr $i]]
$hlist add ErrorFaces/$entity -text $entityname -data $entityname #$hlist add ErrorFaces/$entity -text $entityname -data $entityname
$w.tree insert {ErrorFaces} end -id $entity -text $entityname
incr i 1 incr i 1
} }
} }
@ -106,20 +120,24 @@ proc occdialogbuildtree {} {
set faces [Ng_OCCCommand getnotdrawablefaces] set faces [Ng_OCCCommand getnotdrawablefaces]
set nrfaces [expr [llength $faces]] set nrfaces [expr [llength $faces]]
if {$nrfaces >= 2} { if {$nrfaces >= 2} {
$hlist add NotDrawableFaces -itemtype text -text "Faces impossible to visualize" #$hlist add NotDrawableFaces -itemtype text -text "Faces impossible to visualize"
$w.mtre open NotDrawableFaces $w.tree insert {} -id NotDrawableFaces -text "Faces impossible to visualize"
#$w.mtre open NotDrawableFaces
$w.tree item NotDrawableFaces -open true
set i [expr 0] set i [expr 0]
while {$i < $nrfaces} { while {$i < $nrfaces} {
set entity [lindex $faces [expr $i]] set entity [lindex $faces [expr $i]]
set myroot [string range $entity 0 [string last / $entity]-1]
incr i 1 incr i 1
set entityname [lindex $faces [expr $i]] set entityname [lindex $faces [expr $i]]
$hlist add NotDrawableFaces/$entity -text $entityname -data $entityname #$hlist add NotDrawableFaces/$entity -text $entityname -data $entityname
$w.tree insert $myroot end -id $entity -text $entityname
incr i 1 incr i 1
} }
} }
$w.mtre autosetmode #$w.mtre autosetmode
puts "done" puts "done"
} }
@ -128,7 +146,8 @@ proc occdialogbuildtree {} {
proc rebuildoccdialog {} { proc rebuildoccdialog {} {
if {[winfo exists .occ_dlg] == 1} { if {[winfo exists .occ_dlg] == 1} {
[.occ_dlg.mtre subwidget hlist] delete all .occ_dlg.tree delete [.occ_dlg.tree children Topology]
#[.occ_dlg.mtre subwidget hlist] delete all
occdialogbuildtree occdialogbuildtree
} }
} }
@ -160,19 +179,19 @@ proc selectentity { entityname } {
set entityname2 [string range $entityname2 0 [expr [string length $entityname]-1]] set entityname2 [string range $entityname2 0 [expr [string length $entityname]-1]]
if {$entityname == $entityname2} { if {$entityname == $entityname2} {
set hlist [.occ_dlg.mtre subwidget hlist] #set hlist [.occ_dlg.mtre subwidget hlist]
.occ_dlg.mtre open Topology #.occ_dlg.mtre open Topology
set slashpos [string last "/" $entity2] set slashpos [string last "/" $entity2]
set entity3 [string range $entity2 0 [expr $slashpos-1]] set entity3 [string range $entity2 0 [expr $slashpos-1]]
while {$slashpos != -1} { while {$slashpos != -1} {
.occ_dlg.mtre open Topology/$entity3 #.occ_dlg.mtre open Topology/$entity3
set slashpos [string last "/" $entity3] set slashpos [string last "/" $entity3]
set entity3 [string range $entity3 0 [expr $slashpos-1]] set entity3 [string range $entity3 0 [expr $slashpos-1]]
} }
$hlist selection clear #$hlist selection clear
$hlist see Topology/$entity2 #$hlist see Topology/$entity2
$hlist selection set Topology/$entity2 #$hlist selection set Topology/$entity2
} }
} }
} }
@ -197,26 +216,57 @@ proc occdialog { } {
} { } {
toplevel $w toplevel $w
tixTree $w.mtre -options { separator "/" } #tixTree $w.mtre -options { separator "/" }
pack $w.mtre -fill both -expand yes ttk::treeview $w.tree
$w.tree insert {} end -id "Topology" -text "Topology"
#pack $w.mtre -fill both -expand yes
pack $w.tree -fill both -expand yes
occdialogbuildtree occdialogbuildtree
set hlist [$w.mtre subwidget hlist] #set hlist [$w.mtre subwidget hlist]
$hlist configure -selectforeground black # $hlist configure -selectforeground black
$hlist configure -selectbackground grey # $hlist configure -selectbackground grey
set solname {""} #set solname {""}
bind $hlist <Double-1> { # bind $hlist <Double-1> {
set oldsolname {$solname} # set oldsolname {$solname}
set solname [[.occ_dlg.mtre subwidget hlist] info selection] # set solname [[.occ_dlg.mtre subwidget hlist] info selection]
if {$solname != "" && $oldsolname != $solname } { # puts $solname
set seppos [string first "/" $solname] # if {$solname != "" && $oldsolname != $solname } {
set rootname [string range $solname 0 [expr $seppos-1]] # set seppos [string first "/" $solname]
# set rootname [string range $solname 0 [expr $seppos-1]]
set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname] # set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname]
# set spacepos [string first " " $entityname]
# set entitytype [string range $entityname 0 [expr $spacepos-1]]
# set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]]
# set spacepos2 [string first " " $helpstring]
# set entitynumber [string range $helpstring 0 [expr $spacepos2-1]]
# puts "Ent name = "
# puts $entityname
# puts $rootname
# if {$rootname == "Topology"} {
# Ng_OCCCommand highlightentity $entitytype $entitynumber
# set selectvisual geometry
# redraw
# } {
# set brackpos [string first " (" $entityname]
# if {$brackpos != -1} {
# set entityname [string range $entityname 0 $brackpos]
# puts "entityname = "
# puts $entityname
# }
# selectentity $entityname
# }
# }
# }
bind $w.tree <Double-1> {
set entityname [.occ_dlg.tree item [.occ_dlg.tree selection] -text ]
set rootname "Topology"
set spacepos [string first " " $entityname] set spacepos [string first " " $entityname]
set entitytype [string range $entityname 0 [expr $spacepos-1]] set entitytype [string range $entityname 0 [expr $spacepos-1]]
set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]] set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]]
@ -231,19 +281,17 @@ proc occdialog { } {
if {$brackpos != -1} { if {$brackpos != -1} {
set entityname [string range $entityname 0 $brackpos] set entityname [string range $entityname 0 $brackpos]
} }
selectentity $entityname selectentity $entityname
} }
} }
}
ttk::button $w.cl -text "Close" -command { ttk::button $w.cl -text "Close" -command {
destroy .occ_dlg destroy .occ_dlg
} }
ttk::button $w.show -text "Show" -command { ttk::button $w.show -text "Show" -command {
set solname [[.occ_dlg.mtre subwidget hlist] info selection] #set solname [[.occ_dlg.mtre subwidget hlist] info selection]
set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname] #set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname]
set entityname [.occ_dlg.tree item [.occ_dlg.tree selection] -text ]
set spacepos [string first " " $entityname] set spacepos [string first " " $entityname]
set entitytype [string range $entityname 0 [expr $spacepos-1]] set entitytype [string range $entityname 0 [expr $spacepos-1]]
set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]] set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]]
@ -256,8 +304,9 @@ proc occdialog { } {
redraw redraw
} }
ttk::button $w.hide -text "Hide" -command { ttk::button $w.hide -text "Hide" -command {
set solname [[.occ_dlg.mtre subwidget hlist] info selection] #set solname [[.occ_dlg.mtre subwidget hlist] info selection]
set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname] #set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname]
set entityname [.occ_dlg.tree item [.occ_dlg.tree selection] -text ]
set spacepos [string first " " $entityname] set spacepos [string first " " $entityname]
set entitytype [string range $entityname 0 [expr $spacepos-1]] set entitytype [string range $entityname 0 [expr $spacepos-1]]
set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]] set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]]
@ -270,9 +319,10 @@ proc occdialog { } {
redraw redraw
} }
button $w.swaporientation -text "Swap orientation" -command { ttk::button $w.swaporientation -text "Swap orientation" -command {
set solname [[.occ_dlg.mtre subwidget hlist] info selection] #set solname [[.occ_dlg.mtre subwidget hlist] info selection]
set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname] #set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname]
set entityname [.occ_dlg.tree item [.occ_dlg.tree selection] -text ]
set spacepos [string first " " $entityname] set spacepos [string first " " $entityname]
set entitytype [string range $entityname 0 [expr $spacepos-1]] set entitytype [string range $entityname 0 [expr $spacepos-1]]
set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]] set helpstring [string range $entityname [expr $spacepos+1] [expr [string length $entityname]-1]]
@ -283,14 +333,15 @@ proc occdialog { } {
set selectvisual geometry set selectvisual geometry
# Ng_SetVisParameters # Ng_SetVisParameters
redraw redraw
.occ_dlg.tree delete [.occ_dlg.tree children Topology]
[.occ_dlg.mtre subwidget hlist] delete all #[.occ_dlg.mtre subwidget hlist] delete all
occdialogbuildtree occdialogbuildtree
} }
ttk::button $w.marksingular -text "Mark/Unmark as singular" -command { ttk::button $w.marksingular -text "Mark/Unmark as singular" -command {
set solname [[.occ_dlg.mtre subwidget hlist] info selection] #set solname [[.occ_dlg.mtre subwidget hlist] info selection]
set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname] #set entityname [[.occ_dlg.mtre subwidget hlist] info data $solname]
set entityname [.occ_dlg.tree item [.occ_dlg.tree selection] -text ]
set spacepos [string first " " $entityname] set spacepos [string first " " $entityname]
if { $spacepos != 0 } { if { $spacepos != 0 } {
set entitytype [string range $entityname 0 [expr $spacepos-1]] set entitytype [string range $entityname 0 [expr $spacepos-1]]
@ -302,17 +353,25 @@ proc occdialog { } {
global ismarkedsingular global ismarkedsingular
Ng_OCCCommand marksingular $entitytype $entitynumber Ng_OCCCommand marksingular $entitytype $entitynumber
set hlist [$w.mtre subwidget hlist] #set hlist [$w.mtre subwidget hlist]
# $hlist entryconfigure $solname -text "hallo" # $hlist entryconfigure $solname -text "hallo"
# set style1 [tixDisplayStyle imagetext -font 8x13] # set style1 [tixDisplayStyle imagetext -font 8x13]
set style1 [tixDisplayStyle imagetext -foreground black -background white -selectforeground white -selectbackground blue] # set style1 [tixDisplayStyle imagetext -foreground black -background white -selectforeground white -selectbackground blue]
set style2 [tixDisplayStyle imagetext -foreground red -background white -selectforeground red -selectbackground blue] # set style2 [tixDisplayStyle imagetext -foreground red -background white -selectforeground red -selectbackground blue]
if { $ismarkedsingular == 0 } { if { $ismarkedsingular == 0 } {
$hlist entryconfigure $solname -style $style1 #$hlist entryconfigure $solname -style $style1
.occ_dlg.tree tag add "Color" [.occ_dlg.tree selection]
.occ_dlg.tree tag configure "Color" -foreground "black"
.occ_dlg.tree tag configure "Color" -background "white"
#.occ_dlg.tree delete "Topology"
} { } {
$hlist entryconfigure $solname -style $style2 .occ_dlg.tree tag add "Color" [.occ_dlg.tree selection]
.occ_dlg.tree tag configure "Color" -foreground "red"
.occ_dlg.tree tag configure "Color" -background "blue"
#.occ_dlg.tree delete "Topology"
#$hlist entryconfigure $solname -style $style2
} }
# set hlist [$w.mtre subwidget hlist] # set hlist [$w.mtre subwidget hlist]
@ -331,9 +390,10 @@ proc occdialog { } {
# set selectvisual geometry # set selectvisual geometry
# Ng_SetVisParameters # Ng_SetVisParameters
# redraw # redraw
# .occ_dlg.tree delete [.occ_dlg.tree children Topology]
# [.occ_dlg.mtre subwidget hlist] delete all # #[.occ_dlg.mtre subwidget hlist] delete all
# occdialogbuildtree # occdialogbuildtree
} }
@ -359,10 +419,10 @@ proc occdialog { } {
set irregent [Ng_OCCCommand findsmallentities] set irregent [Ng_OCCCommand findsmallentities]
set w .occ_dlg set w .occ_dlg
set hlist [$w.mtre subwidget hlist] #set hlist [$w.mtre subwidget hlist]
$hlist add ProblematicEntities -text "Problematic Entities" #$hlist add ProblematicEntities -text "Problematic Entities"
$hlist delete offsprings ProblematicEntities #$hlist delete offsprings ProblematicEntities
set nritems [expr [llength $irregent]] set nritems [expr [llength $irregent]]
set i [expr 0] set i [expr 0]
@ -370,11 +430,11 @@ proc occdialog { } {
set entity [lindex $irregent [expr $i]] set entity [lindex $irregent [expr $i]]
incr i 1 incr i 1
set entityname [lindex $irregent [expr $i]] set entityname [lindex $irregent [expr $i]]
$hlist add ProblematicEntities/$entity -text $entityname -data $entityname #$hlist add ProblematicEntities/$entity -text $entityname -data $entityname
incr i 1 incr i 1
} }
$w.mtre open ProblematicEntities #$w.mtre open ProblematicEntities
$w.mtre autosetmode #$w.mtre autosetmode
} }
# tixControl $w.healing.tolerance -label "Healing tolerance: " -integer false \ # tixControl $w.healing.tolerance -label "Healing tolerance: " -integer false \
@ -410,7 +470,8 @@ proc occdialog { } {
.occ_dlg.healing.tolerance invoke .occ_dlg.healing.tolerance invoke
Ng_OCCCommand shapehealing Ng_OCCCommand shapehealing
redraw redraw
[.occ_dlg.mtre subwidget hlist] delete all .occ_dlg.tree delete [.occ_dlg.tree children Topology]
#[.occ_dlg.mtre subwidget hlist] delete all
occdialogbuildtree occdialogbuildtree
} }