cale.il
来自「可以在cadence程序中直接调用的calc」· IL 代码 · 共 162 行
IL
162 行
(defun _cale_Form ()
time = getCurrentTime()
time = parseString(time)
day = nth(2 time)
month = car(time)
year = nth(3 time)
date = strcat(" Date: " month " " day " " year)
FORMFILE = outfile( "./cale.form")
fprintf( FORMFILE "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf( FORMFILE "FORM\n")
fprintf( FORMFILE "FIXED\n")
fprintf( FORMFILE "PORT 40 13\n")
fprintf( FORMFILE "HEADER \"Cale - by Fastprint\"\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "TILE\n")
fprintf( FORMFILE "FIELD value_show\n")
fprintf( FORMFILE "FLOC 2 1\n")
fprintf( FORMFILE "STRFILLIN 20 100\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "TEXT \"=\"\n")
fprintf( FORMFILE "TLOC 25 1\n")
fprintf( FORMFILE "ENDTEXT\n\n")
fprintf( FORMFILE "FIELD jieguo\n")
fprintf( FORMFILE "FLOC 27 1\n")
fprintf( FORMFILE "REALFILLIN 10 100\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "FIELD mils\n")
fprintf( FORMFILE "FLOC 2 4\n")
fprintf( FORMFILE "REALFILLIN 10 100\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "TEXT \"mils\"\n")
fprintf( FORMFILE "TLOC 15 4\n")
fprintf( FORMFILE "ENDTEXT\n\n")
fprintf( FORMFILE "FIELD mm\n")
fprintf( FORMFILE "FLOC 22 4\n")
fprintf( FORMFILE "REALFILLIN 10 100\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "TEXT \"mm\"\n")
fprintf( FORMFILE "TLOC 35 4\n")
fprintf( FORMFILE "ENDTEXT\n\n")
fprintf( FORMFILE "FIELD clear\n")
fprintf( FORMFILE "FLOC 10 7\n")
fprintf( FORMFILE "MENUBUTTON \"Clear\" 5 3\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "FIELD exit\n")
fprintf( FORMFILE "FLOC 25 7\n")
fprintf( FORMFILE "MENUBUTTON \"EXIT\" 5 3\n")
fprintf( FORMFILE "ENDFIELD\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "ENDTILE\n")
fprintf( FORMFILE "\n")
fprintf( FORMFILE "ENDFORM\n")
close( FORMFILE)
form = (axlFormCreate (gensym) "cale.form" `("E" "OUTER") `cale_Callback t)
axlFormDisplay( form)
axlUIWPrint(form date)
axlFormSetDecimal(form "jieguo" 4)
axlFormSetDecimal(form "mils" 3)
axlFormSetDecimal(form "mm" 4)
deleteFile( "cale.form")
s = ""
m1 = 0.0
m2 = 0.0
m3 = 0.0
a = ""
)
(defun cale_Callback (form)
(prog ()
case( form->curField
("value_show"
t1=1
i=1
s = form->curValue
while(t1==1
a=symbolToString(getchar(s i))
i++
case(a
("+"
t1=0
m1_c= car(parseString(s "+"))
m2_c= nthelem(2 parseString(s "+"))
sscanf(m1_c "%f" m1 )
sscanf(m2_c "%f" m2 )
m3=m1+m2
)
("-"
t1=0
m1_c= car(parseString(s "-"))
m2_c= nthelem(2 parseString(s "-"))
sscanf(m1_c "%f" m1 )
sscanf(m2_c "%f" m2 )
m3=m1-m2
)
("*"
t1=0
m1_c= car(parseString(s "*"))
m2_c= nthelem(2 parseString(s "*"))
sscanf(m1_c "%f" m1 )
sscanf(m2_c "%f" m2 )
m3=m1*m2
)
("/"
t1=0
m1_c= car(parseString(s "/"))
m2_c= nthelem(2 parseString(s "/"))
sscanf(m1_c "%f" m1 )
sscanf(m2_c "%f" m2 )
m3=m1/m2
)
)
axlFormSetField( form "jieguo" m3)
);end while
t)
("mils"
mils = form->curValue
mm = axlMKSConvert( mils "MILS" "MM")
axlFormSetField( form "mm" mm)
t)
("mm"
mm = form->curValue
mils = axlMKSConvert( mm "MM" "MILS")
axlFormSetField( form "mils" mils)
t)
("clear"
axlFormSetField( form "value_show" nil)
axlFormSetField( form "jieguo" nil)
axlFormSetField( form "mils" nil)
axlFormSetField( form "mm" nil)
t)
("exit"
axlFormClose(form)
t)
)
))
axlCmdRegister( "cale" `_cale_Form)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?