[Brlcad-commits] CVS: brlcad/src/tclscripts/archer Wizard.tcl,1.1.2.1,1.1.2.2
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: Bob P. <bo...@us...> - 2005-10-25 17:59:31
|
Update of /cvsroot/brlcad/brlcad/src/tclscripts/archer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16499 Modified Files: Tag: bobWinPort Wizard.tcl Log Message: Add XML helper functions (from src/archer/plugins/Wizards/tankwizardIA/TankWizardIA.tcl Index: Wizard.tcl =================================================================== RCS file: /cvsroot/brlcad/brlcad/src/tclscripts/archer/Attic/Wizard.tcl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -w -u -r1.1.2.1 -r1.1.2.2 --- Wizard.tcl 8 Sep 2005 21:16:46 -0000 1.1.2.1 +++ Wizard.tcl 25 Oct 2005 17:59:19 -0000 1.1.2.2 @@ -23,6 +23,17 @@ method getWizardXmlAction {} method getWizardUnits {} + method beginSystemXML {name {id ""}} + method endSystemXML {} + method beginTagXML {tag} + method endTagXML {tag} + method buildTagValXML {tag value} + method beginZoneXML {name id} + method endZoneXML {} + method buildComponentXML {name id} + method buildVirtualComponentXML {name material density p1 p2 p3} + method buildWheelXML {type begin end} + common wizardMajorType "" common wizardMinorType "" common wizardName "" @@ -75,3 +86,72 @@ ::itcl::body Wizard::getWizardUnits {} { return $wizardUnits } + +::itcl::body Wizard::beginSystemXML {name {id ""}} { + append systemXML [beginTagXML "System"] + append systemXML [buildTagValXML "Name" $name] + + if {$id != ""} { + append systemXML [buildTagValXML "Geometry_Reference" [buildTagValXML "ID" $id]] + } + + return $systemXML +} + +::itcl::body Wizard::endSystemXML {} { + endTagXML "System" +} + +::itcl::body Wizard::beginTagXML {tag} { + return "<$tag>" +} + +::itcl::body Wizard::endTagXML {tag} { + return "</$tag>" +} + +::itcl::body Wizard::buildTagValXML {tag value} { + append systemXML [beginTagXML $tag] + append systemXML $value + append systemXML [endTagXML $tag] +} + +::itcl::body Wizard::beginZoneXML {name id} { + append zoneXML [beginSystemXML $name $id] +} + +::itcl::body Wizard::endZoneXML {} { + append zoneXML [beginTagXML "Properties"] + append zoneXML [beginTagXML "Boolean"] + append zoneXML [buildTagValXML "Name" "Zone"] + append zoneXML [buildTagValXML "Value" "true"] + append zoneXML [beginTagXML "Properties"] + append zoneXML [beginTagXML "String"] + append zoneXML [buildTagValXML "Name" "Material"] + append zoneXML [buildTagValXML "Value" "Steel"] + append zoneXML [endTagXML "String"] + append zoneXML [beginTagXML "Percent"] + append zoneXML [buildTagValXML "Name" "Density"] + append zoneXML [buildTagValXML "Value" "0.35"] + append zoneXML [endTagXML "Percent"] + append zoneXML [endTagXML "Properties"] + append zoneXML [endTagXML "Boolean"] + append zoneXML [endTagXML "Properties"] + append zoneXML [endSystemXML] +} + +::itcl::body Wizard::buildComponentXML {name id} { + return "<Component><Name>$name</Name><Geometry_Reference><ID>$id</ID></Geometry_Reference><Material_Reference>Cold Rolled Steel</Material_Reference><Properties><Percent><Name>Density</Name><Value>100</Value></Percent></Properties></Component>" +} + +::itcl::body Wizard::buildVirtualComponentXML {name material density p1 p2 p3} { + return "<Component><Name>$name</Name><Material_Reference>$material</Material_Reference><Properties><Percent><Name>Density</Name><Value>$density</Value></Percent><String><Name>Zone Weighting</Name><Value>Average</Value><Properties><Percent><Name>Front</Name><Value>$p1</Value></Percent><Percent><Name>Left</Name><Value>$p2</Value></Percent><Percent><Name>Top</Name><Value>$p3</Value></Percent></Properties></String></Properties></Component>" +} + +::itcl::body Wizard::buildWheelXML {type begin end} { + append wheelXML [beginSystemXML "$type Wheels"] + for {set id $begin; set n 1} {$id < $end} {incr id; incr n} { + append wheelXML [buildComponentXML "$type Wheel $n" $id] + } + append wheelXML [endSystemXML] +} |