All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
AIM: To create a macro for element quality check. PROCEDURE: CODE: #setting up the windowset a .element catch {destroy $a}toplevel $a -class TopLevelwm title $a "Quality Check" #size of a window tab is defined:wm geometry $a 390x500+50+50; update wm resizable $a 0 0wm deiconify $a #creating label label $a.001…
Vivek Sant
updated on 01 Feb 2022
AIM: To create a macro for element quality check.
PROCEDURE:
CODE:
#setting up the window
set a .element
catch {destroy $a}
toplevel $a -class TopLevel
wm title $a "Quality Check"
#size of a window tab is defined:
wm geometry $a 390x500+50+50; update
wm resizable $a 0 0
wm deiconify $a
#creating label
label $a.001 -text "2D Element Check" -bg grey -font {Arial 10 }; place $a.001 -x 20 -y 10 -width 170 -height 30
#creating entry box and button for 2D element check:
entry $a.01 -textvariable "::mil" -font {arial 10}; place $a.01 -x 150 -y 50 -width 40 -height 30
button $a.02 -text "Min Length" -command "minl" -font {arial 10} ; place $a.02 -x 20 -y 50 -width 100 -height 30
entry $a.03 -textvariable "::mal" -font {arial 10}; place $a.03 -x 150 -y 90 -width 40 -height 30
button $a.04 -text "Max Length" -command "maxl" -font {arial 10} ; place $a.04 -x 20 -y 90 -width 100 -height 30
entry $a.05 -textvariable "::wa" -font {arial 10}; place $a.05 -x 150 -y 130 -width 40 -height 30
button $a.06 -text "Warpage" -command "warpage" -font {arial 10} ; place $a.06 -x 20 -y 130 -width 100 -height 30
entry $a.07 -textvariable "::as" -font {arial 10}; place $a.07 -x 150 -y 170 -width 40 -height 30
button $a.08 -text "Aspect" -command "aspect" -font {arial 10} ; place $a.08 -x 20 -y 170 -width 100 -height 30
entry $a.09 -textvariable "::sk" -font {arial 10}; place $a.09 -x 150 -y 210 -width 40 -height 30
button $a.10 -text "Skewness" -command "skew" -font {arial 10} ; place $a.10 -x 20 -y 210 -width 100 -height 30
entry $a.11 -textvariable "::ja" -font {arial 10}; place $a.11 -x 150 -y 250 -width 40 -height 30
button $a.12 -text "Jacobian" -command "jacob" -font {arial 10} ; place $a.12 -x 20 -y 250 -width 100 -height 30
entry $a.13 -textvariable "::miq" -font {arial 10}; place $a.13 -x 150 -y 290 -width 40 -height 30
button $a.14 -text "Min Angle Quad" -command "minq" -font {arial 9} ; place $a.14 -x 20 -y 290 -width 100 -height 30
entry $a.15 -textvariable "::maq" -font {arial 10}; place $a.15 -x 150 -y 330 -width 40 -height 30
button $a.16 -text "Max Angle Quad" -command "maxq" -font {arial 9} ; place $a.16 -x 20 -y 330 -width 100 -height 30
entry $a.17 -textvariable "::mit" -font {arial 10}; place $a.17 -x 150 -y 370 -width 40 -height 30
button $a.18 -text "Min Angle Tria" -command "mint" -font {arial 9} ; place $a.18 -x 20 -y 370 -width 100 -height 30
entry $a.19 -textvariable "::mat" -font {arial 10}; place $a.19 -x 150 -y 410 -width 40 -height 30
button $a.20 -text "Max Angle Tria" -command "maxt" -font {arial 9} ; place $a.20 -x 20 -y 410 -width 100 -height 30
#Creating label for 3D check:
label $a.002 -text "3D Element Check" -bg grey -font {Arial 10}; place $a.002 -x 200 -y 10 -width 170 -height 30
#creating entry box and button for 3D element check:
entry $a.21 -textvariable "::tet" -font {arial 10}; place $a.21 -x 330 -y 50 -width 40 -height 30
button $a.22 -text "Tet Collapse" -command "tetc" -font {arial 9} ; place $a.22 -x 200 -y 50 -width 100 -height 30
entry $a.23 -textvariable "::war3" -font {arial 10}; place $a.23 -x 330 -y 90 -width 40 -height 30
button $a.24 -text "Warpage" -command "warpage3d" -font {arial 9} ; place $a.24 -x 200 -y 90 -width 100 -height 30
entry $a.25 -textvariable "::asp3" -font {arial 10}; place $a.25 -x 330 -y 130 -width 40 -height 30
button $a.26 -text "Aspect" -command "aspect3d" -font {arial 9} ; place $a.26 -x 200 -y 130 -width 100 -height 30
#procedure for minimum length
proc minl {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestlength elements 1 $::mil 2 1 2 0 " Min length "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for maximum length
proc maxl {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestlength elements 1 $::mal 2 0 2 0 " Max length "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for warpage 2D
proc warpage {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestwarpage elements 1 $::wa 2 2 0 "Warpage"
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure Aspect ration 2D
proc aspect {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestaspect elements 1 $::as 2 2 0 " Aspect"
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for skewness
proc skew {} {
*clearmarkall 1
*clearmarkall 2
*createmark elements 1 "displayed"
*elementtestskew elements 1 $::sk 2 2 0 " Skew "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for jacobian
proc jacob {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestjacobian elements 1 $::ja 2 2 0 " Jacobian "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for minimum quad angle
proc minq {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $::miq 0 2 1 2 0 " Min angle Quad "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for maximum quand angle
proc maxq {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $::maq 0 2 0 2 0 " Max angle Quad"
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for minimum tria angle
proc mint {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $::mit 1 2 1 2 0 " Min angle Tria "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for maximum trai angle
proc maxt {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $::mat 1 2 0 2 0 " Max angle Tria "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for tet collapse
proc tetc {} {
*clearmarkall 1
*clearmarkall 2
*createmark elements 1 "displayed"
*elementtesttetracollapse elements 1 $::tet 2 0 " 3D Tetra Collapse "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for warpage 3D
proc warpage3d {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestwarpage elements 1 $::war3 2 4 0 "3D Warpage"
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
#procedure for aspect ratio 3D
proc aspect3d {} {
*clearmarkall 1
*clearmarkall 2
*nodecleartempmark
*createmark elements 1 "displayed"
*elementtestaspect elements 1 $::asp3 2 4 0 " 3D Aspect Ratio "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
RESULT:
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
Project - 2 - Generating the report for hypermesh file
AIM: To create a macro for generating the report for hypermesh file. CODE: # getting username, date and time!*clearmarkall 1*clearmarkall 2set filename [open Output.csv w]set systemname "$env(COMPUTERNAME)"puts $filename "USERNAME-$systemname"puts $filename [clock format [clock seconds]] # finding the number of component,…
07 Feb 2022 11:52 AM IST
Project 1- Building a Master TCL/TK Macro
AIM: To create a master macro using previous challenge PROCEDURE: CODE: #setting up the windowset a .master catch {destroy $a}toplevel $a -class TopLevelwm title $a "Master Macro" #size of a window tab is defined:wm geometry $a 660x515+0+0; update wm resizable $a 0 0wm deiconify $a #creating label label $a.001 -text…
02 Feb 2022 04:53 PM IST
Week - 12 - Creating the locator, writing and reading the node data
AIM: To create macro for locator, writing and reading node data. PROCEDURE: CODE: *clearmarkall 1 ; *clearmarkall 2set a .connectors catch [destroy $a]toplevel $awm title $a "CONNECTORS"wm geometry $a 200x210+100+300;wm resizable $a 0 0wm deiconify $a#buttons button $a.01 -text "Collectors" -command collectors…
02 Feb 2022 11:02 AM IST
Week - 11 - Element quality check
AIM: To create a macro for element quality check. PROCEDURE: CODE: #setting up the windowset a .element catch {destroy $a}toplevel $a -class TopLevelwm title $a "Quality Check" #size of a window tab is defined:wm geometry $a 390x500+50+50; update wm resizable $a 0 0wm deiconify $a #creating label label $a.001…
01 Feb 2022 03:22 PM IST
Related Courses
0 Hours of Content
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.