结合Tcl/Tk和ANSYS的APDL参数化语言编写螺旋结构的参数化建模程序,程序完成后即可在ANSYS中运行,运行后会弹出编写好的界面,通过设置其中的几个参数即可实现一键参数化建模与分网。
编写好的界面如下所示,可以对比界面中的示意图设置其中的几个尺寸,包括螺旋半径R,螺距H,圈数N和螺纹的半径Rr,设置完后点击Creat即可快速创建模型。
具体代码如下所示:
#Tcl/Tk编写界面
set w [toplevel .ef]
set Font "Times 14 bold"
wm title $w "Creat Model"
#初始化参数值
set R 25
set N 10
set H 3
set Rr 1
set wf $w.wf
frame $wf -relief groove -borderwidth 2
set w0 $wf.0
frame $w0
#导入参考体育
set img [image create photo -file E:/CAE_Tech/process_files/92/model.gif]
label $w0.img -image $img -anchor nw
grid $w0.img -sticky nw
#布置label和entry
set w1 $wf.1
frame $w1
label $w1.1 -text "R:" -width 5 -font $Font
label $w1.2 -text "H:" -width 5 -font $Font
label $w1.3 -text "N:" -width 5 -font $Font
label $w1.4 -text "Rr:" -width 5 -font $Font
entry $w1.5 -textvariable R -width 10 -font $Font -justify center
entry $w1.6 -textvariable H -width 10 -font $Font -justify center
entry $w1.7 -textvariable N -width 10 -font $Font -justify center
entry $w1.8 -textvariable Rr -width 10 -font $Font -justify center
button $w1.b1 -text "Creat" -width 8 -font $Font -command {creatmodel}
button $w1.b2 -text "Cancel" -width 8 -font $Font -command {destroy .ef}
for {set i 1} {$i <= 4} {incr i} {
grid $w1.$i -row $i -column 1
}
for {set i 5} {$i <= 8} {incr i} {
grid $w1.$i -row [expr $i-4] -column 2
}
grid $w1.b1 -row 5 -column 1 -pady 5
grid $w1.b2 -row 5 -column 2 -pady 5
pack $wf.0 -padx 10 -pady 10 -side top
pack $wf.1 -padx 10 -pady 10 -side top
pack $wf
#wm resizable $w 0 0
wm state $w normal
#Tcl/Tk编写子进程
proc creatmodel {} {
global R
global H
global N
global Rr
ans_sendcommand "/prep7"
ans_sendcommand "*DIM,THETA,ARRAY,$N*3+1"
ans_sendcommand "*VFILL,THETA(1),RAMP,0,360/3 "
ans_sendcommand "*AFUN,DEG"
ans_sendcommand "CSYS,1"
ans_sendcommand "*DO,I,1,$N*3+1"
ans_sendcommand "K,I,$R,THETA(I),$H*(I-1)"
ans_sendcommand "*ENDDO"
ans_sendcommand "*DO,I,1,$N*3"
ans_sendcommand "L,I,I+1"
ans_sendcommand "*ENDDO"
ans_sendcommand "*DO,I,0,$N*3-1"
ans_sendcommand "LWPLAN,-1,I+1,0"
ans_sendcommand "CYL4,0,0,$Rr"
ans_sendcommand "*ENDDO"
ans_sendcommand "*DO,I,1,$N*3"
ans_sendcommand "VDRAG,I,,,,,,I"
ans_sendcommand "*ENDDO"
ans_sendcommand "ET,1,45"
ans_sendcommand "TYPE,1"
ans_sendcommand "VMESH,ALL"
}
自动创建的模型如下所示:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删