Week - 10 - Creating the midline and spot weld
Objective: To create code for creating midline and combine the line. Create spotweld for given set of node
Procedure:
MIDLINE:
1. Create a set for storing first set of lines
2. Create a set for storing second set of lines
3. creating midline for every pair of lines
4. combining lines to single line
Code:
*createlistbypathpanel lines 1 "Select first set of lines"
set first [hm_getlist lines 1]
*createlistbypathpanel lines 1 "Select second set of lines"
set second [hm_getlist lines 1]
set mid {}
foreach i $first j $second {
*clearmarkall 1; *clearmarkall 2
*createlist lines 1 $i
*createlist nodes 1
*createlist lines 2 $j
*createlist nodes 2
*linescreatemidline 1 1 2 2
set b [hm_latestentityid lines]
lappend mid $b
if {[llength $mid] > 1} {
*linecombine [lindex $mid 0] [lindex $mid 1] 0
set mid [hm_latestentityid lines]
}
}
Rigids:
1. Create a set for storing first set of nodes
2. Create a set for storing second set of nodes
3. creating rigids for every pair of nodes
Code:
*createlistbypathpanel nodes 1 "Select first set of nodes"
set first [hm_getlist nodes 1]
*createlistbypathpanel nodes 1 "Select second set of nodes"
set second [hm_getlist nodes 1]
set mid {}
foreach i $first j $second {
*clearmarkall 1; *clearmarkall 2
*elementtype 5 1
*rigid $i $j 123456
}
Conclusion:
Full code combing midline and rigids
proc midline {} {
*createlistbypathpanel lines 1 "Select first set of lines"
set first [hm_getlist lines 1]
*createlistbypathpanel lines 1 "Select second set of lines"
set second [hm_getlist lines 1]
set mid {}
foreach i $first j $second {
*clearmarkall 1; *clearmarkall 2
*createlist lines 1 $i
*createlist nodes 1
*createlist lines 2 $j
*createlist nodes 2
*linescreatemidline 1 1 2 2
set b [hm_latestentityid lines]
lappend mid $b
if {[llength $mid] > 1} {
*linecombine [lindex $mid 0] [lindex $mid 1] 0
set mid [hm_latestentityid lines]
}
}
}
proc rigids {} {
*createlistbypathpanel nodes 1 "Select first set of nodes"
set first [hm_getlist nodes 1]
*createlistbypathpanel nodes 1 "Select second set of nodes"
set second [hm_getlist nodes 1]
set mid {}
foreach i $first j $second {
*clearmarkall 1; *clearmarkall 2
*elementtype 5 1
*rigid $i $j 123456
}
}
set a .window
catch {destroy $a}
toplevel $a -class Toplevel
wm title $a "Midline_Rigids"
wm geometry $a 200x200+500+500
wm resizable $a 0 0
wm deiconify $a
button $a.01 -text "Midline" -command {midline} -font {time 11}; place $a.01 -x 45 -y 15
button $a.02 -text "Rigids" -command {rigids} -font {time 11}; place $a.02 -x 45 -y 60
Successfully run in hypermesh