# # Copyright 2003 (c) Pointwise, Inc. # All rights reserved. # # This sample Gridgen script is not supported by Pointwise, Inc. # It is provided freely for demonstration purposes only. # SEE THE WARRANTY DISCLAIMER AT THE BOTTOM OF THIS FILE. # gg::tkLoad set scriptDir [file dirname [info script]] catch {source [file join $scriptDir pwiLogo.glf]} set domlist [gg::domGetAll] if {[llength $domlist] == 0} { tk_messageBox -icon error -title "No domains" -message \ "There are no domains defined." -type ok gg::abort } set PreserveGrid 1 set selected {} proc getTempFileName { basename } { global tcl_platform global env # Build up a list of possible directories to write to set dirs [pwd] if {[info exists env(TEMP)]} { lappend dirs $env(TEMP) } if {[info exists env(TMP)]} { lappend dirs $env(TMP) } if {[info exists env(TMPDIR)]} { lappend dirs $env(TMPDIR) } if {[string equal $tcl_platform(platform) "windows"]} { if {[info exists env(USERPROFILE)]} { lappend dirs $env(USERPROFILE) } } else { lappend dirs "/tmp" lappend dirs "/usr/tmp" } if {[info exists env(HOME)]} { lappend dirs $env(HOME) } foreach dir $dirs { if {[file writable $dir] > 0} { set fname [file join $dir $basename] if {[file exists $fname] == 0 || [file writable $fname] > 0} { return $fname } } } return $basename } proc convertToDBEntity { } { global selected PreserveGrid gg::domReport $selected data STRUCTURE set uns {} set str {} for { set i 0 } { $i < [llength $selected] } { incr i } { if { [string compare [lindex $data(type) $i] STRUCTURED] == 0 } { lappend str [lindex $selected $i] } else { lappend uns [lindex $selected $i] } } set fname [getTempFileName "exptmp.grd"] set fileExists [file exists $fname] if { [llength $uns] > 0 } { if {[catch {gg::domExport $uns $fname -precision SINGLE -form ASCII \ -style NASTRAN} msg]} { tk_messageBox -icon error -title "Error exporting file" -message \ "Error exporting file:\n$msg" -type ok if {0 == $fileExists} { catch {file delete -- $fname} } return } else { catch {gg::dbImport $fname -precision SINGLE -type NASTRAN} } } if { [llength $str] > 0 } { if {[catch {gg::domExport $str $fname -precision SINGLE -form ASCII \ -style PLOT3D} msg]} { tk_messageBox -icon error -title "Error exporting file" -message \ "Error exporting file:\n$msg" -type ok if {0 == $fileExists} { catch {file delete -- $fname} } return } else { catch {gg::dbImport $fname -precision SINGLE -style PLOT3D -form ASCII} } } if {0 == $fileExists} { catch {file delete -- $fname} } if { $PreserveGrid == 0 } { foreach dom $selected { gg::domReport $dom data REFERENCE if { $data(refBlocks) != {} } { if { [tk_dialog .dialog "Confirm Delete" "The domain $dom is part of block(s) $data(refBlocks). Deleting this domain will also delete these blocks. Would you still like to delete the domain?" warning "0" "Keep" "Delete"] == 1 } { catch { gg::domDelete $dom -force -cons } } } else { catch { gg::domDelete $dom -force -cons } } } } } proc select { } { global selected domlist wm withdraw . set add [gg::dispPick DOMAIN -message "Select domains to export" -select $selected] foreach i $add { if { [lsearch $selected $i]==-1 } { lappend selected $i } } if {[winfo exists .]} { wm deiconify . } if {0 == [llength $selected]} { .buttons.ok configure -state disabled } else { .buttons.ok configure -state normal } } proc makeWindow {} { global domlist label .title -text "Domain To DB Entity" set font [.title cget -font] .title configure -font [font create -family [font actual $font -family] -weight bold] pack .title -expand 1 -side top pack [frame .hr1 -relief sunken -height 2 -bd 1] -side top -padx 2 -fill x -pady 1 pack [button .enterSelect -text "Pick Domains" -command { select }] pack [checkbutton .preserve -text "Keep Domains" -variable PreserveGrid] pack [frame .hr2 -relief sunken -height 2 -bd 1] -side top -padx 2 -fill x -pady 1 pack [frame .buttons] -fill x -padx 2 -pady 1 pack [button .buttons.cancel -text "Cancel" -command { exit }] -side right -padx 2 pack [button .buttons.ok -text "OK" -command { convertToDBEntity; exit;} -state disabled] -side right -padx 2 if {![catch {pwiLogoCreate .buttons.logo 1} b]} { $b configure -bd 0 -relief flat pack $b -side left -padx 5 -fill y } bind . { # convertToDBEntity exit } } makeWindow gg::tkLoop # # DISCLAIMER: # TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, POINTWISE DISCLAIMS # ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED # TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE, WITH REGARD TO THIS SCRIPT. TO THE MAXIMUM EXTENT PERMITTED # BY APPLICABLE LAW, IN NO EVENT SHALL POINTWISE BE LIABLE TO ANY PARTY # FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES # WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF # BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE # USE OF OR INABILITY TO USE THIS SCRIPT EVEN IF POINTWISE HAS BEEN # ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND REGARDLESS OF THE # FAULT OR NEGLIGENCE OF POINTWISE. #