Challenge

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

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.