Skip to content

Commit 09b85b4

Browse files
write
1 parent 09e2ca7 commit 09b85b4

4 files changed

Lines changed: 122 additions & 7 deletions

File tree

kratos.gid/apps/MdpaGenerator/app.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"name": "Mdpa Generator",
44
"script_files": [
55
"start.tcl",
6-
"xml/XmlController.tcl"
6+
"xml/XmlController.tcl",
7+
"write/write.tcl"
78
],
89
"dimensions": [
910
"3D"
@@ -18,5 +19,6 @@
1819
"intervals": false,
1920
"wizard": false
2021
},
22+
"main_launch_file": null,
2123
"description": "MDPA generator \n-Useful tool to generate modelparts"
2224
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
namespace eval ::MdpaGenerator {
22
Kratos::AddNamespace [namespace current]
3-
3+
44
# Variable declaration
55
variable _app
66
variable dir
77
}
88

99

1010
proc ::MdpaGenerator::Init { app } {
11-
11+
1212
# Variable initialization
1313
variable _app
1414
variable dir
@@ -17,4 +17,5 @@ proc ::MdpaGenerator::Init { app } {
1717
set dir [apps::getMyDir "MdpaGenerator"]
1818

1919
::MdpaGenerator::xml::Init
20+
::MdpaGenerator::write::Init
2021
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
namespace eval ::MdpaGenerator::write {
2+
namespace path ::MdpaGenerator
3+
Kratos::AddNamespace [namespace current]
4+
5+
# Namespace variables declaration
6+
variable writeCoordinatesByGroups
7+
variable writeAttributes
8+
variable ConditionMap
9+
# after regular conditions are written, we need this number in order to print the custom submodelpart conditions
10+
# only if are applied over things that are not in the skin
11+
variable last_condition_iterator
12+
}
13+
14+
proc ::MdpaGenerator::write::Init { } {
15+
# Namespace variables inicialization
16+
17+
variable last_condition_iterator
18+
set last_condition_iterator 0
19+
20+
variable writeAttributes
21+
set writeAttributes [dict create ]
22+
}
23+
24+
# MDPA write event
25+
proc ::MdpaGenerator::write::writeModelPartEvent { } {
26+
# Validation
27+
set err [Validate]
28+
if {$err ne ""} {error $err}
29+
30+
InitConditionsMap
31+
writeProperties
32+
33+
# Init data
34+
write::initWriteConfiguration [GetAttributes]
35+
36+
# Headers
37+
write::writeModelPartData
38+
39+
# Nodal coordinates
40+
write::writeNodalCoordinates
41+
42+
# Custom SubmodelParts
43+
variable last_condition_iterator
44+
write::writeBasicSubmodelPartsByUniqueId $MdpaGenerator::write::ConditionMap $last_condition_iterator
45+
46+
# Clean
47+
unset ::MdpaGenerator::write::ConditionMap
48+
}
49+
50+
proc ::MdpaGenerator::write::writeCustomFilesEvent { } {
51+
}
52+
53+
54+
proc ::MdpaGenerator::write::Validate {} {
55+
set err ""
56+
57+
return $err
58+
}
59+
60+
# MDPA Blocks
61+
proc ::MdpaGenerator::write::writeProperties { } {
62+
# Begin Properties
63+
write::WriteString "Begin Properties 0"
64+
write::WriteString "End Properties"
65+
write::WriteString ""
66+
}
67+
68+
proc ::MdpaGenerator::write::InitConditionsMap { {map "" } } {
69+
70+
variable ConditionMap
71+
if {$map eq ""} {
72+
set ConditionMap [objarray new intarray [expr [GiD_Info Mesh MaxNumElements] +1] 0]
73+
} {
74+
set ConditionMap $map
75+
}
76+
}
77+
proc ::MdpaGenerator::write::FreeConditionsMap { } {
78+
79+
variable ConditionMap
80+
unset ConditionMap
81+
}
82+
83+
proc ::MdpaGenerator::write::GetAttribute {att} {
84+
variable writeAttributes
85+
return [dict get $writeAttributes $att]
86+
}
87+
88+
proc ::MdpaGenerator::write::GetAttributes {} {
89+
variable writeAttributes
90+
return $writeAttributes
91+
}
92+
93+
proc ::MdpaGenerator::write::SetAttribute {att val} {
94+
variable writeAttributes
95+
dict set writeAttributes $att $val
96+
}
97+
98+
proc ::MdpaGenerator::write::AddAttribute {att val} {
99+
variable writeAttributes
100+
dict lappend writeAttributes $att $val
101+
}
102+
103+
proc ::MdpaGenerator::write::AddAttributes {configuration} {
104+
variable writeAttributes
105+
set writeAttributes [dict merge $writeAttributes $configuration]
106+
}
107+
108+
proc ::MdpaGenerator::write::writeParametersEvent { } {
109+
110+
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<container n="MdpaGenerator" pn="MdpaGenerator" icon="app" prefix="MDPAGen_" tree_state="open" open_window="0">
3-
<container n="WriteOptions" pn="Write options" tree_state="open">
4-
</container>
5-
<include n="GenericSubModelPart" active="1" path="apps/Common/xml/GenericSubModelPart.spd"/>
2+
<container n="MdpaGenerator" pn="MdpaGenerator" icon="app" prefix="MDPAGen_" tree_state="open" open_window="0">
3+
<container n="WriteOptions" pn="Write options" tree_state="open">
4+
<value n="condition_write_mode" pn="Condition mode" v='unique' values="unique,repeat,gid-id" dict="unique,Unique ids,repeat,Repeat,gid-id,GiD ids"
5+
help="Ids policy for conditions applied over the same entity more than one time."/>
66
</container>
7+
<include n="GenericSubModelPart" active="1" path="apps/Common/xml/GenericSubModelPart.spd"/>
8+
</container>

0 commit comments

Comments
 (0)