圌ãã®ããã°ã©ã ãèŠç¥ãã¬äººãšçµ±åããåé¡ã¯ããœãããŠã§ã¢éçºã®åéããŸããŸãã«ããŒããŠããŸãã å€ãã®ããã°ã©ããŒã¯ãèªåã§æžãå¿
èŠããããšèããŠããŸããä»ã®äººã®éçºãšçµ±åããã®ã¯æªãããšã§ãããéçºããŒã ã®èŠæš¡ãçµéšã䟿å®ãèæ
®ããŠããŸããã ã¯ãã1ã2幎以å
ã«åãæéèŠçŽ èšç®ã·ã¹ãã ãå®è£
ããããšã¯å¯èœã§ãããé«å質ã§ã¯ãããŸããã 10幎ãã20幎ã«ããã£ãŠéçºãããŠãããããžã§ã¯ãã®éçºã®éçãã2幎以å
ã«ç¹°ãè¿ãããšã¯å¯èœã§ããïŒ åœç¶äžå¯èœã§ããããã°ãã°äžé©åã§ãã
ãã·ã¢ã§æã人æ°ã®ãããœãããŠã§ã¢ããŒã«ã¯ANSYSãABAQUSãSCADãLIRAãPLAXISãªã©ã§ãããšäž»åŒµãã人ã¯ããŸããã ãããŠããã®é·ãåå²ãããåžå Žã»ã°ã¡ã³ãã§ããããå ããå¯èœæ§ã¯äœã§ããïŒ ãããŠãæ°ããããã°ã©ã ã§ååŠç¿ããã人ã¯ã»ãšãã©ããŸããã ããããããã°ã©ã ã匷åãªæ±ºæžã·ã¹ãã ãšçµ±åããçµæãå¥ã®ã·ã¹ãã ã«è»¢éãããšããåé¡ã¯ãã¯ããã«å°é£ãªã¿ã¹ã¯ã§ãã éçºãšãããã°ã«äœå¹Žãããã£ã匷åãªã³ã³ãã¥ãŒãã£ã³ã°ããã±ãŒãžããããç¹å®ã®ã¿ã¹ã¯ããããŸããã1ã€ã®ã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã«å®è£
ããã®ãéåžžã«é£ããå Žåããèªåã§å®è£
ã§ããå¿
èŠãªæ©èœããããŸããã
å¿
èŠã«å¿ããŠãå®éã®ãã¹ãã®ã°ã«ãŒãã®ã¢ããªã³ã°ã®çµæãèšç®ã¢ãã«ãšäžèŽãããããã«ãææã¢ãã«ã®ãã©ã¡ããªãã¯æé©åãå®è¡ããããã«ãã®ã¿ã¹ã¯ãåãäžããŸããã ããã¯ãåãœãããŠã§ã¢è£œåãç¬èªã®æ¹æ³ãèæ
®ããANSYSã§ã®èšç®çµæãåãã¢ãã«ãã©ã¡ãŒã¿ãŒã䜿çšããABAQUSã§ã®èšç®ãšåäžã§ã¯ãªããšããäºå®ã«ãã£ãŠããã«æªåããŸãã èšç®ã®ç¹å®ã®å®è£
ãæéèŠçŽ ã®ã¿ã€ããããã«ã¯ã°ãªããããŒãã®å Žæã«äŸåããŸãã ãã®çµæããšã³ãžãã¢ã¯ææã®ãã©ã¡ãŒã¿ãå
¥åããŸãããå®éã«ã©ã®ããã«æ£ç¢ºã«å¯Ÿå¿ããŠãããã¯ããããŸããã ããã«ãæé©ãªãã©ã¡ãŒã¿ãŒã®å€åæ§ã¯ãã¹ãçµæã®70ïŒ
ã«éããå¯èœæ§ããããŸããç¹ã«ããã¹ãåŠçã¯1ã€ãæå€§2ã€ã®åŒ·åºŠæ¡ä»¶ãå€ãã®å ŽåæãåçŽã§è€éãªã¢ãã«ã®ãã¬ãŒã ã¯ãŒã¯å
ã§å®è¡ããããããç¹ã«å¿
èŠã«å¿ããŠèšå®ããããã«æ±ããããå Žåãå¿
èŠãªãã©ã¡ãŒã¿ãŒã決å®ããæ¹æ³ãåžžã«ããã£ãŠãããšã¯éããŸããããããç¯å²ã®çµéšããã
ãã®åé¡ã解決ããããã«ãããã°ã©ã ãANSYSèšç®ã³ã¢ãšçµ±åããããã«ã¿ã¹ã¯ãèšå®ãããŸããã çµ±åã¿ã¹ã¯ã¯åé¡ãªã解決ãããŸããããæ£åžžã«è§£æ±ºãããŸããã ããã«ãäž»ãªåé¡ã¯ãããªãã¯ãã¡ã€ã³ã«ããã¥ã¡ã³ãããŸã£ãããªãããšã§ããããã®ãããçµ±åã®å®è£
ã«é¢ããæ
å ±ã¯ãç§ã®åé¡ãšåãåé¡ãæ±ããŠãã人ã«ãšã£ãŠéåžžã«åœ¹ç«ã€ãšæããŸãã
çµ±åã¡ã«ããºã
åäžã®ANSYS Workbenchç°å¢ã§ãã¹ãŠã®ANSYSãœãããŠã§ã¢è£œåã®çµ±åãéå§ããããšãããã°ã©ã ããã®ç°å¢ã«çŽæ¥çµ±åã§ããããã«ãªããŸããã ANSYS Workbenchã¢ãŒããã¯ãã£èªäœã¯ãã¢ãã¬ãããšåŒã°ããANSYSã¢ãžã¥ãŒã«ãåŒã³åºãããJavaããã³VBã¹ã¯ãªããã䜿çšããŠæ§ç¯ãããŠããŸãã
éçºè
ãæåã«æãæµ®ãã¶æåã®ãªãã·ã§ã³ã¯ãJava-Scriptã§ä»¥åã«äœæãŸãã¯çæãããã¹ã¯ãªããããåŒã³åºãã ãã§ååãªããšã§ãã ãã ãããã®ãã¹ã«ã¯ããªãéå€§ãªæ¬ é¥ã1ã€ãããŸããã¹ã¯ãªãããåŒã³åºããã³ã«ãã¯ãŒã¯ãã³ããå床éããANSYSã¢ãã¬ãããåæåããå¿
èŠããããŸãããã®åŸãèšç®ã®ããã«ã³ãã³ããã«ãŒãã«ã«éä¿¡ããŸãã ããã¯ã
Cã«ããã¹ã¯ãªããããèŠãããšãã§ããŸã
ã\ Program Files \ ANSYS Inc \ v110 \ AISOL \ SDK \ samples \ JPDL \Demo.jsã ã¹ã¯ãªããããã¹ãã以äžã«ç€ºããŸãã
oWB = new ActiveXObject ïŒ "AnsysWB.WB.90" ïŒ ;
oWBã StartApplet = "AAOApplet" ;
oWBã å®è¡ ïŒ ïŒ ;
oWBã ã¿ã€ãã« = "ANSYS Workbench" ;
ConnectToAnsysCS ïŒ ïŒ ;
var fsãa ;
ForAppending = 8 ;
fs = new ActiveXObject ïŒ "Scripting.FileSystemObject" ïŒ ;
a = fsã CreateTextFile ïŒ "dïŒ \ r undir \ t estfile.txt" ã true ïŒ ;
with ïŒ ansysãcmd ïŒ {
for ïŒ l = 4 ; l < 10 ; l ++ ïŒ {
_clear ïŒ ïŒ ;
_prep7 ïŒ ïŒ ;
_view ïŒ null ã -1 ã -2 ã -3 ïŒ ;
var w = 3 ;
var d = 2 ;
block ïŒ null ãlã null ãwã null ãd ïŒ ;
kp4x = ansysã apdl get ïŒ "KP" ã 4 ã "LOC" ã "X" ïŒ ;
commentx = "KP 4 X LOC =" ;
commentx + = kp4x ;
kp4y = ansysã apdl get ïŒ "KP" ã 4 ã "LOC" ã "Y" ïŒ ;
commenty = "KP 4 Y LOC =" ;
ã³ã¡ã³ã+ = kp4y ;
kp4z = ansysã apdl get ïŒ "KP" ã 4 ã "LOC" ã "Z" ïŒ ;
commentz = "KP 4 Z LOC =" ;
commentz + = kp4z ;
ret = _com ïŒ commentx ïŒ ;
ret = _com ïŒã³ã¡ã³ãïŒ ;
ret = _com ïŒ commentz ïŒ ;
ãã ã ã WriteLine ïŒ commentx ïŒ ;
ãã ã ã WriteLine ïŒã³ã¡ã³ãïŒ ;
ãã ã ã WriteLine ïŒ commentz ïŒ ;
çäœïŒ 1 ïŒ ;
vsbv ïŒ 1ã2 ïŒ ;
et ïŒ 2ã92 ïŒ ;
vmesh ïŒ "all" ïŒ ;
da ïŒ 9 ã "all" ïŒ ;
sfa ïŒ 4ã1ã "pres" ã 10,000,000 ïŒ ;
mp ïŒ "EX" ã1ã27E + 06 ïŒ ;
mp ïŒ "PRXY" ã 1ã0.3 ïŒ ;
finish ïŒ ïŒ ;
_solu ïŒ ïŒ ;
解決ããïŒ ïŒ ;
finish ïŒ ïŒ ;
_post1 ïŒ ïŒ ;
ã»ããïŒ "LAST" ïŒ ;
plnsol ïŒ "S" ã " EQV " ïŒ ;
_replot ïŒ ïŒ ;
finish ïŒ ïŒ ;
}
}
aã éãã ïŒ ïŒ ;
ããã°ã©ã ã§ã¹ã¯ãªãããçæããŠå®è¡ãããšãéåžžã«äžäŸ¿ã«ãªããŸãããªããªãã ã¹ã¯ãªããèªäœã¯å€éšãã³ãã©ãŒã«ãã£ãŠå®è¡ãããããããããã°ãéåžžã«è€éã«ãªããŸãã ãŸããäœæ¥ã®å
šãµã€ã¯ã«ãæ
åœããã¹ã¯ãªãããçæããããšã¯éåžžã«äžäŸ¿ã§ãã
äž»ãªåé¡ã¯ãWorkBenchç°å¢ã®ãã³ãã«ãååŸããŠä¿åããããšã§ããã ãã®èгç¹ãããã¯ãŒã¯ãã³ãç°å¢ã®ããŒããæ
åœããéšåãæãè峿·±ããã®ã§ãã
oWB = new ActiveXObject ïŒ "AnsysWB.WB.90" ïŒ ;
oWBã StartApplet = "AAOApplet" ;
oWBã å®è¡ ïŒ ïŒ ;
oWBã ã¿ã€ãã« = "ANSYS Workbench" ;
ãããšä»ã®ã¹ã¯ãªãããå匷ãããšããç§ã¯è³ªåããããŸããïŒJava-Scriptãã§ãããªãããªãCïŒã¯ã§ããªãã®ã§ãã ãããŠãéåžžã«ããŸãããããšãããã£ãã ANSYSãã€ã³ã¹ããŒã«ãããšãMS Visual Studioèªäœããã¹ãŠã®ANSYSã©ã€ãã©ãªãžã®ãªã³ã¯ãæ€åºããŸãããå°ãªããšãããŒãžã§ã³11ã§ã¯ããããã¯å€§å¹
ã«åãæšãŠãããŠããŸãã ãããããã®äžã«ã¯ãWorkbenchç°å¢ã§ã®ããã°ã©ã ã®åäœãæ
åœããã©ã€ãã©ãªã§ããAnsysWBããããŸãããããã¯ANSYSWBLibåå空éã®åœ¢åŒã§æ¥ç¶ãããŠããŸãã
ANSYSãå®è¡ããã«ã¯ã次ã®ã³ãŒããæžãã®ã«ååã§ããããšã倿ããŸããã
ANSYSWBLibã WBClass wb = æ°ãã ANSYSWBLibã WBClass ïŒ ïŒ ; // ABSYS WBãªããžã§ã¯ããäœæããŸã
wbã ã³ãã³ãã©ã€ã³ ãã£ã¬ã¯ã㪠= @ "cïŒtmp" ; //äœæ¥ãã£ã¬ã¯ããªãæå®ããŸã
wbã ã³ãã³ãã©ã€ã³ JobName = "Test" ; //ãããžã§ã¯ãã®ååãæå®ããŸã
wbã ã³ãã³ãã©ã€ã³ CadFile = @ "cïŒtmpqwe.ewq" ; //äœæ¥ãã¡ã€ã«ãæå®ããŸã
wbã StartApplet = "AAOApplet" ; //å€å
žçãªANSYSã¢ãžã¥ãŒã«ãå¿
èŠã§ããããšãæå®ããŸã
wbã å®è¡ ïŒ 0 ïŒ ;
ãããã£ãŠããã®ã³ãŒãã䜿çšãããšANSYSãå®è¡ã§ããèµ·åãããåŸæ¥ã®ANSYSã®ã¢ãã¬ãããèµ·åã¢ãã¬ãããšããŠçŽæ¥ç€ºãããŸãã ãããããã®åŸãç§ãã¡ã¯åœŒãžã®å¶åŸ¡ã³ãã³ãã®è»¢éãæŽçããå¿
èŠããããããã§å°é£ãçããŸããã Java-Scriptã§ã¯ãããã¯æ¬¡ã®è¡ã§å®è£
ãããŸãã
ã¢ã㪠ã¹ã¯ãªãã ans_sendcommand ïŒã³ãã³ãïŒ
Appã¯ãAAOAppletã¢ãžã¥ãŒã«ãžã®ãã³ãã«ãžã®ãªã³ã¯ã§ãã ã¯ã©ã¹ããããã£ã«æ ŒçŽãããŸãã
wbã AppletList ã get_WBApplet ïŒ "AAOApplet" ïŒ ã ã¢ãã¬ãã ã¢ããª
ãããããã©ã°ã€ã³ã©ã€ãã©ãªã®ANSYSããŒãžã§ã³11ã§ã¯ãANSYSã¢ãã¬ãããæäœããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãèŠã€ãããŸããã§ããã 幞ããªããšã«ãNET FrameWorkã«ã¯Microsoft.JScriptãªã©ã®ã©ã€ãã©ãªããããJScriptã¹ã¯ãªãããã¡ã¢ãªå
ã§çŽæ¥ã³ã³ãã€ã«ããŠå®è¡ã§ããCïŒããå¿
èŠãªé¢æ°ã®åŒã³åºããå®è£
ã§ããŸãã
ãã®ç®çã®ããã«ãANSYSã§äœæ¥ããããã«å¿
èŠãªãã¹ãŠã®æ©èœãå®è£
ããç¬èªã®ã¯ã©ã¹ãäœæããããšã«ããŸãã/ã¯ã©ã¹ã³ãŒãã以äžã«ç€ºããŸãã
ã¯ã©ã¹ WBCommand
{
ANSYSWBLibã WBClass wb ;
ãããªã㯠WBCommand ïŒ ANSYSWBLibãWBClass WB ïŒ
{
wb = wb ;
aao = wbã AppletList ã get_WBApplet ïŒ "AAOApplet" ïŒ ã ã¢ãã¬ãã ã¢ããª
æååã³ãŒã= @ "颿°ã¯ããŒãžã£ïŒïŒ
{
ãªã¿ãŒã³é¢æ°ïŒã¢ããªãã³ãã³ãïŒ
{
return App.Script.ans_sendcommandïŒã³ãã³ãïŒ;
}
}
ééïŒïŒã ;
//
SendCommandClosure = ïŒ Closure ïŒ Microsoftã JScript è©äŸ¡ JScriptEvaluate ïŒã³ãŒããMicrosoftãJScriptãVsaãVsaEngineãCreateEngine ïŒ ïŒ ïŒ ;
}
private Closure SendCommandClosure = null ;
ãã©ã€ããŒãã¯ããŒãžã£ãŒSetWorkingDirectoryClosure = null ;
ãã©ã€ããŒã ãªããžã§ã¯ã aao = null ;
ãããªã㯠ãªããžã§ã¯ã SendCommand ïŒ string Command ïŒ
{
SendCommandClosureãè¿ããŸãã Invoke ïŒ null ã new object [ ] { aaoãCommand } ïŒ ;
}
public void SetWorkingDirectory ïŒ string WorkingDirectory ïŒ
{
SendCommand ïŒ "/ CWDã" + WorkingDirectory ïŒ ;
}
}
ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããšãåŒã³åºãããããã·ãŒãžã£ãJScriptã§åœ¢æããããã®ãšã³ããªãã€ã³ããä¿åãããŸãã
æååã³ãŒã= @ "颿°ã¯ããŒãžã£ïŒïŒ
{
ãªã¿ãŒã³é¢æ°ïŒã¢ããªãã³ãã³ãïŒ
{
return App.Script.ans_sendcommandïŒã³ãã³ãïŒ;
}
}
ééïŒïŒã ;
//
SendCommandClosure = ïŒ Closure ïŒ Microsoftã JScript è©äŸ¡ JScriptEvaluate ïŒã³ãŒããMicrosoftãJScriptãVsaãVsaEngineãCreateEngine ïŒ ïŒ ïŒ ;
ãããåŒã³åºãããã«ãã¡ãœãããå®è£
ãããŸããïŒ
ãããªã㯠ãªããžã§ã¯ã SendCommand ïŒ string Command ïŒ
{
SendCommandClosureãè¿ããŸãã Invoke ïŒ null ã new object [ ] { aaoãCommand } ïŒ ;
}
ããã¹ãã³ãã³ããå¿
èŠãšããå
¥åãã©ã¡ãŒã¿ãŒãšããŠããŸãJSCriptãåŒã³åºããããšã颿°ã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã§åä¿¡ããaao倿°ã«ä¿åãããã¢ãã¬ãããžã®åç
§ã远å ã§æž¡ããŸãã
SendCommandã¡ãœãããåŒã³åºãããšã§ãå€éšã¢ããªã±ãŒã·ã§ã³ããAPDLèšèªã®ANSYSã³ãã³ãã転éããå¿
èŠãªãã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããããã«ãªããŸããã ãã®æ¹æ³ã¯ãANSYSã³ãã³ãã©ã€ã³ãžã®ã³ãã³ãå
¥åãçŽæ¥ãšãã¥ã¬ãŒãããŸãããå€ãã®ã³ãã³ãã§ã¯ç¢ºèªãå¿
èŠã§ãã ã¢ã¯ã·ã§ã³ã®ç¢ºèªèŠæ±ãåé¿ããã«ã¯ãã³ãã³ããäžåºŠã«1ã€ãã€æ¿å
¥ããã®ã§ã¯ãªããAPDLãã¡ã€ã«ã«æžã蟌ã¿ãSendCommandã³ãã³ãïŒ "/ inpãfãapdl"ïŒãåŒã³åºãã ãã§ååã§ãããã®å ŽåãANSYSã¯1ã€ãŸãã¯å¥ã®æäœã
ç§ã¯ANSYSã®æ°ããããŒãžã§ã³ã§ã®åäœããã¹ãããŠããªããããJSã®äœ¿çšãå®å
šã«æŸæ£ããããšãå¯èœã«ãªããŸããããããŒãžã§ã³11ãšã®äºææ§ãå¿
èŠãªå Žåãããã°ã©ã ãçµ±åããå¥ã®æ¹æ³ã¯èŠã€ãããŸããã§ããã