|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
现代码已完成所有需要的功能,但是有一个BUG一直无法解决,就是在确后数据后执行OK(进入第498行的函数时)
,第一次可以正常使用,也可以正常输出,但是在软件完全关闭后,再用"zz1",指令时,就无法第二次打开!!
请大大们指点一下!!!
万分感谢!!
为方便大大们不必要的扣分指导,原码复制如下!- axlCmdRegister("zz1" 'stack_layer)
- (defun stack_layer ()
- time = getCurrentTime()
- time = parseString(time)
- day = nth(1 time)
- month = car(time)
- month = upperCase(month)
- year = nth(3 time)
- date = strcat(" Date: " day " " month " " year)
- Set_stack_layer()
- choose_row_form = axlFormCreate( (gensym) Set_stack_form_file nil 'Set_stack_layer_Action t)
- axlFormDisplay(choose_row_form)
- axlUIWPrint(choose_row_form date)
- when(isFile(Set_stack_form_file)
- deleteFile(Set_stack_form_file)
- );when
-
- ; Create_stack_layer()
- ; Create_stack_layer_form = axlFormCreate( (gensym) Create_form_file nil 'Create_stack_layer_Action t)
- ; axlFormDisplay(Create_stack_layer_form)
- ; axlUIWPrint(Create_stack_layer_form date)
-
- )
- (defun Set_stack_layer ()
- drain()
- Set_stack_form_file = "choose_row_form.form"
- choose_row_form = outfile(Set_stack_form_file "w")
- fprintf(choose_row_form "#Created by xml2bnf perl utility\n")
- fprintf(choose_row_form "#Coded by Venkata Ramanan/Santa Clara, CA\n\n")
- fprintf(choose_row_form "FILE_TYPE=FORM_DEFN VERSION=2\n")
- fprintf(choose_row_form "FORM AUTOGREYTEXT\n")
- fprintf(choose_row_form "FIXED\n")
- fprintf(choose_row_form "PORT 40 30\n")
- fprintf(choose_row_form "HEADER \"Form Field Type Demo\"\n\n")
- fprintf(choose_row_form "POPUP <ENUM>\"ITEM1\"\"0\",\"ITEM2\"\"1\",\"ITEM3\"\"2\",\"LAST ONE\"\"3\".\n\n")
- fprintf(choose_row_form "POPUP <Row_Numer_List>\"\"\"0\",\"1\"\"1\",\"2\"\"2\",\"3\"\"3\",\"4\"\"4\",\"5\"\"5\",\"6\"\"6\",\"7\"\"7\",\"8\"\"8\",\"9\"\"9\",\"10\"\"10\".\n\n")
- fprintf(choose_row_form "TILE\n\n")
-
- fprintf(choose_row_form "## ENUM Field in Form## \n")
- fprintf(choose_row_form "FIELD Row_Numer\n")
- fprintf(choose_row_form "FLOC 28 1\n")
- fprintf(choose_row_form "STRFILLIN 2 5\n")
- fprintf(choose_row_form "FGROUP \"Form1\"\n")
- fprintf(choose_row_form "POP \"Row_Numer_List\"\n")
- fprintf(choose_row_form "OPTIONS multiselect prettyprint\n")
- fprintf(choose_row_form "ENDFIELD\n\n")
- fprintf(choose_row_form "## Text Field in Form## \n")
- fprintf(choose_row_form "TEXT \"Choose the row of impedance :\"\n")
- fprintf(choose_row_form "FLOC 2 1\n")
- fprintf(choose_row_form "TGROUP \"Form1\"\n")
- fprintf(choose_row_form "ENDTEXT\n\n")
-
- fprintf(choose_row_form "ENDTILE\n\n")
- fprintf(choose_row_form "ENDFORM\n\n")
- close(choose_row_form)
- )
- (defun Set_stack_layer_Action (choose_row_form)
- (let (t1 item index field cnt)(printf "field/value %L = %L (int %L\n)"
- choose_row_form->curField choose_row_form->curValue, choose_row_form->curValueInt )
- (printf "doneState %L\n" choose_row_form->doneState )
- case(choose_row_form->curField
- ("Row_Numer"
- Row_Numer = atoi(choose_row_form->curValue)
- ; printf("Row_Numer = %d \n" Row_Numer)
- ; when(isFile(Create_form_file)
- ; deleteFile(Create_form_file)
- ; );when
- Create_stack_layer()
- Create_stack_layer_form = axlFormCreate( (gensym) Create_form_file nil 'Create_stack_layer_Action t)
- axlFormDisplay(Create_stack_layer_form)
- axlUIWPrint(Create_stack_layer_form date)
- printf("Row_Numer = %d ***\n" Row_Numer)
-
- declare(NAMELayer[Row_Numer])
- arrayp(NAMELayer)
- declare(SWline[Row_Numer])
- arrayp(SWline)
- declare(DWline[Row_Numer])
- arrayp(DWline)
- declare(DSline[Row_Numer])
- arrayp(DSline)
-
- declare(zzSW[Row_Numer])
- arrayp(zzSW)
- declare(zzDW[Row_Numer])
- arrayp(zzDW)
- declare(zzDS[Row_Numer])
- arrayp(zzDS)
-
-
- for(lay 0 Row_Numer-1
- ; wSingle[lay] = nth(lay l_layer)
- ; wSingle[lay] = sprintf(nil "wS%d" lay)
- NAME = nLayer[lay]
- SW = wSingle[lay]
- DW = wDiff[lay]
- DS = wSpace[lay]
- NAMELayer[lay] = sprintf(nil "zNAME%d" lay)
- NAMEL = NAMELayer[lay]
- SWline[lay] = sprintf(nil "zSW%d" lay)
- SWL = SWline[lay]
- DWline[lay] = sprintf(nil "zDW%d" lay)
- DWL = DWline[lay]
- DSline[lay] = sprintf(nil "zDS%d" lay)
- SDL = DSline[lay]
- zzSW[lay] = "0"
- zzDW[lay] = "0"
- zzDS[lay] = "0"
-
-
- if( boundp('SWL)!=nil then
- NAMEL = "nil"
- SWL = "nil"
- DWL = "nil"
- SDL = "nil"
- )
- printf("++++SWline++++%s++++++++\n" SWline[lay])
- axlFormSetField(Create_stack_layer_form NAME NAMEL)
- axlFormSetField(Create_stack_layer_form SW SWL)
- axlFormSetField(Create_stack_layer_form DW DWL)
- axlFormSetField(Create_stack_layer_form DS SDL)
- ; printf("----%d------\n" lay)
-
- ; printf("***SW**%s**xxs**%s**\n" SW xxs)
-
- )
-
- )
- )
- )
- if((nequal choose_row_form->doneState 0)
- axlFormClose(choose_row_form))
- )
- (defun Create_stack_layer ()
- printf("**************\n")
- Create_form_file = "Create_stack_layer_form.form"
- Create_stack_layer_form = outfile(Create_form_file "w")
- if(car(axlDBGetDesignUnits())=="mils" then
- ZUnit = "mil"
- else ZUnit ="mm"
- );if
-
- fprintf(Create_stack_layer_form "#Created by xml2bnf perl utility\n")
- fprintf(Create_stack_layer_form "#Coded by Venkata Ramanan/Santa Clara, CA\n\n")
- fprintf(Create_stack_layer_form "FILE_TYPE=FORM_DEFN VERSION=2\n")
- fprintf(Create_stack_layer_form "FORM AUTOGREYTEXT\n")
- fprintf(Create_stack_layer_form "FIXED\n")
- fprintf(Create_stack_layer_form "PORT 80 30\n")
- fprintf(Create_stack_layer_form "HEADER \"Form Field Type Demo\"\n\n")
- fprintf(Create_stack_layer_form "TILE\n\n")
- fprintf(Create_stack_layer_form "## ENUM Field in Form## \n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"LAYER\"\n")
- fprintf(Create_stack_layer_form "FLOC 2 1\n")
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"50 ohm\"\n")
- fprintf(Create_stack_layer_form "FLOC 19 1\n")
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"100 ohm\"\n")
- fprintf(Create_stack_layer_form "FLOC 31 1\n")
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"Reference layer\"\n")
- fprintf(Create_stack_layer_form "FLOC 48 1\n")
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
- n = 0
-
- p = axlGetParam("paramLayerGroup:ETCH")
- l_layer = p->groupMembers
- nblayer = p->nChildren
- declare(nLayer[Row_Numer])
- arrayp(nLayer)
- declare(wSingle[Row_Numer])
- arrayp(wSingle)
- declare(wDiff[Row_Numer])
- arrayp(wDiff)
- declare(wSpace[Row_Numer])
- arrayp(wSpace)
-
- for(lay 0 Row_Numer-1
- nLayer[lay] = sprintf(nil "NAME%d" lay)
- NAME = nLayer[lay]
-
- wSingle[lay] = sprintf(nil "SW%d" lay)
- SW = wSingle[lay]
-
- wDiff[lay] = sprintf(nil "DW%d" lay)
- DW = wDiff[lay]
-
- wSpace[lay] = sprintf(nil "DS%d" lay)
- DS = wSpace[lay]
-
- i = lay*2+4
- ; printf("i = %d\n" i)
- fprintf(Create_stack_layer_form "## Input Field in Form## \n")
- fprintf(Create_stack_layer_form "FIELD %s\n" NAME)
- fprintf(Create_stack_layer_form "FLOC 2 %d\n" i)
- fprintf(Create_stack_layer_form "FSIZE 8 2\n")
- fprintf(Create_stack_layer_form "STRFILLIN 14 70\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "VALUE \"Input layer\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")
- fprintf(Create_stack_layer_form "## Input Field in Form## \n")
- fprintf(Create_stack_layer_form "FIELD %s\n" SW)
- fprintf(Create_stack_layer_form "FLOC 19 %d\n" i)
- fprintf(Create_stack_layer_form "FSIZE 5 2\n")
- fprintf(Create_stack_layer_form "STRFILLIN 4 70\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "VALUE \"20\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"%s\"\n" ZUnit)
- fprintf(Create_stack_layer_form "FLOC 26 %d\n" i)
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
- fprintf(Create_stack_layer_form "## Input Field in Form## \n")
- fprintf(Create_stack_layer_form "FIELD %s\n" DW)
- fprintf(Create_stack_layer_form "FLOC 30 %d\n" i)
- fprintf(Create_stack_layer_form "FSIZE 6 2\n")
- fprintf(Create_stack_layer_form "STRFILLIN 9 70\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "VALUE \"20/10\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")
- fprintf(Create_stack_layer_form "## Text Field in Form## \n")
- fprintf(Create_stack_layer_form "TEXT \"%s\"\n" ZUnit)
- fprintf(Create_stack_layer_form "FLOC 42 %d\n" i)
- fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDTEXT\n\n")
-
- fprintf(Create_stack_layer_form "## Input Field in Form## \n")
- fprintf(Create_stack_layer_form "FIELD %s\n" DS)
- fprintf(Create_stack_layer_form "FLOC 48 %d\n" i)
- fprintf(Create_stack_layer_form "FSIZE 20 4\n")
- fprintf(Create_stack_layer_form "STRFILLIN 20 70\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "VALUE \" Input reference layer\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")
- )
- ok_row = Row_Numer*2 +6
- fprintf(Create_stack_layer_form "## Button Field in FORM ## \n")
- fprintf(Create_stack_layer_form "FIELD myOK\n")
- fprintf(Create_stack_layer_form "FLOC 13 %d\n" ok_row)
- fprintf(Create_stack_layer_form "MENUBUTTON \"OK\" 14 3\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n")
- fprintf(Create_stack_layer_form "## Button Field in FORM ## \n")
- fprintf(Create_stack_layer_form "FIELD Cancel\n")
- fprintf(Create_stack_layer_form "FLOC 34 %d\n" ok_row)
- fprintf(Create_stack_layer_form "MENUBUTTON \"Cancel\" 13 3\n")
- fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
- fprintf(Create_stack_layer_form "ENDFIELD \n\n")
-
- fprintf(Create_stack_layer_form "ENDTILE\n\n")
- fprintf(Create_stack_layer_form "ENDFORM\n\n")
- close(Create_stack_layer_form)
- )
- (defun Create_stack_layer_Action (Create_stack_layer_form)
- (let (t1 item index field cnt)(printf "field/value %L = %L (int %L\n)"
- Create_stack_layer_form->curField Create_stack_layer_form->curValue, Create_stack_layer_form->curValueInt )
- (printf "doneState %L\n" Create_stack_layer_form->doneState )
- case(Create_stack_layer_form->curField
- ("NAME0"
- nLayer[0] = Create_stack_layer_form->curValue
- printf("nLayer[0] = %s \n" nLayer[0])
-
- )
- ("NAME1"
- nLayer[1] = Create_stack_layer_form->curValue
- )
- ("NAME2"
- nLayer[2] = Create_stack_layer_form->curValue
- )
- ("NAME3"
- nLayer[3] = Create_stack_layer_form->curValue
- )
- ("NAME4"
- nLayer[4] = Create_stack_layer_form->curValue
-
- )
- ("NAME5"
- nLayer[5] = Create_stack_layer_form->curValue
-
- )
- ("NAME6"
- nLayer[6] = Create_stack_layer_form->curValue
-
- )
- ("NAME7"
- nLayer[7] = Create_stack_layer_form->curValue
-
- )
- ("NAME8"
- nLayer[8] = Create_stack_layer_form->curValue
-
- )
- ("NAME9"
- nLayer[9] = Create_stack_layer_form->curValue
-
- )
-
- ("SW0"
- zzSW[0] = Create_stack_layer_form->curValue
- )
-
- ("SW1"
- zzSW[1] = Create_stack_layer_form->curValue
-
- )
-
- ("SW2"
- zzSW[2] = Create_stack_layer_form->curValue
-
- )
-
- ("SW3"
- zzSW[3] = Create_stack_layer_form->curValue
-
- )
-
- ("SW4"
- zzSW[4] = Create_stack_layer_form->curValue
-
- )
-
- ("SW5"
- zzSW[5] = Create_stack_layer_form->curValue
-
- )
-
- ("SW6"
- zzSW[6] = Create_stack_layer_form->curValue
-
- )
-
- ("SW7"
- zzSW[7] = Create_stack_layer_form->curValue
-
- )
-
- ("SW8"
- zzSW[8] = Create_stack_layer_form->curValue
-
- )
-
- ("SW9"
- zzSW[9] = Create_stack_layer_form->curValue
- )
-
- ("DW0"
- zzDW[0] = Create_stack_layer_form->curValue
- )
-
- ("DW1"
- zzDW[1] = Create_stack_layer_form->curValue
-
- )
-
- ("DW2"
- zzDW[2] = Create_stack_layer_form->curValue
-
- )
-
- ("DW3"
- zzDW[3] = Create_stack_layer_form->curValue
-
- )
-
- ("DW4"
- zzDW[4] = Create_stack_layer_form->curValue
-
- )
-
- ("DW5"
- zzDW[5] = Create_stack_layer_form->curValue
-
- )
-
- ("DW6"
- zzDW[6] = Create_stack_layer_form->curValue
-
- )
-
- ("DW7"
- zzDW[7] = Create_stack_layer_form->curValue
-
- )
-
- ("DW8"
- zzDW[8] = Create_stack_layer_form->curValue
-
- )
-
- ("DW9"
- zzDW[9] = Create_stack_layer_form->curValue
-
- )
-
- ("DS0"
- zzDS[0] = Create_stack_layer_form->curValue
-
- )
-
- ("DS1"
- zzDS[1] = Create_stack_layer_form->curValue
-
- )
-
- ("DS2"
- zzDS[2] = Create_stack_layer_form->curValue
-
- )
-
- ("DS3"
- zzDS[3] = Create_stack_layer_form->curValue
-
- )
-
- ("DS4"
- zzDS[4] = Create_stack_layer_form->curValue
-
- )
-
- ("DS5"
- zzDS[5] = Create_stack_layer_form->curValue
-
- )
-
- ("DS6"
- zzDS[6] = Create_stack_layer_form->curValue
-
- )
-
- ("DS7"
- zzDS[7] = Create_stack_layer_form->curValue
-
- )
-
- ("DS8"
- zzDS[8] = Create_stack_layer_form->curValue
-
- )
-
- ("DS9"
- zzDS[9] = Create_stack_layer_form->curValue
-
- )
-
- ("myOK"
- ;;;;;;;;;;;;;;;;;;test date;;;;;;;;;;;;;;;;;;;;;;
- ; for(i 0 Row_Numer-1
- ; printf("*************\n")
- ; printf("layer name = %s \n" nLayer[i])
- ; printf("single width = %s \n" zzSW[i])
- ; printf("different width and space = %s \n" zzDW[i])
- ; printf("refernce layer = %s \n" zzDS[i])
- ; );for
- ;;;;;;;;;;;;;;;;;;test date;;;;;;;;;;;;;;;;;;;;;;
- Impedance_table();开启后在软件件内无法执行两次以上
- axlClearSelSet()
- axlFormClose(Create_stack_layer_form)
- printf("test\n")
- ;Button Field
- ;Enter Action Here
-
- )
- ("Cancel"
- axlFormClose(Create_stack_layer_form)
-
- ;Button Field
- ;Enter Action Here
-
- )
- )
- )
-
-
- if((nequal Create_stack_layer_form->doneState 0)
- axlFormClose(Create_stack_layer_form))
- )
- defun( Impedance_table ()
- stack_layer = "MANUFACTURING/IMPEDANCE"
- axlClearSelSet()
- Display = axlVisibleGet()
- axlVisibleDesign(nil)
- axlVisibleLayer(stack_layer t)
- axlDBRefreshId(axlDBGetDesign())
- axlSetFindFilter(?enabled '(noall shapes text lines ) ?onButtons '(noall shapes text lines))
- axlDeleteObject(axlGetSelSet( axlAddSelectAll() ) )
- axlVisibleSet(Display)
- ; axlClearDynamics()
- Unit=car(axlDBGetDesignUnits())
- case(Unit
- ("millimeters" u=1)
- ("mils" u=40)
- );end case
- L=66*u
- H=-1*(5+Row_Numer*4)*u
- axlClearDynamics()
- mypath = axlPathStart(list( 0:0 L:0 L:H 0:H 0:0))
- axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0)
-
- if(axlIsLayer(stack_layer) == nil then
- axlLayerCreateNonConductor(stack_layer)
- );if
- (axlUIWRedraw nil)
- axlVisibleLayer(stack_layer t)
-
- pointStart=nil
-
- pointStart = axlEnterPoint()
- Px=xCoord(pointStart)
- Py=yCoord(pointStart)
- myorient=make_axlTextOrientation(?textBlock "4",?rotation 0., ?mirrored nil, ?justify "left")
-
- axlDBCreateText("IMPEDANCE_TABLE:",list(Px+3*u Py-4*u+100), myorient, stack_layer,nil)
- axlDBCreateText("LAYER",list(Px+3*u+100 Py-4*u-100), myorient, stack_layer,nil)
- axlDBCreateText("50ohm",list(Px+3*u+800 Py-4*u-100), myorient, stack_layer,nil)
- axlDBCreateText("100ohm",list(Px+3*u+1300 Py-4*u-100), myorient, stack_layer,nil)
- axlDBCreateText("REFERENCE LAYER",list(Px+3*u+1900 Py-4*u-100), myorient, stack_layer,nil)
-
- ; printf("layer name = %s \n" nLayer[i])
- ; printf("single width = %s \n" zzSW[i])
- ; printf("different width and space = %s \n" zzDW[i])
- ; printf("refernce layer = %s \n" zzDS[i])
-
-
- for(i 0 Row_Numer-1
- n = i+1
- axlDBCreateLine( list(Px+3*u:Py-4*u-200*n Px+3*u+3000:Py-4*u-200*n), 15, stack_layer );up line
- ; layer_name[i] = strcat(nLayer[i])
- ; layer_Single_Width[i]= strcat(zzSW[i] )
- ; layer_Differential_WidthSpace[i]= strcat(zzDW[i])
- ; layer_reference[i] =stract(zzDS[i])
-
- axlDBCreateText(nLayer[i],list(Px+3*u+100 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
- axlDBCreateText(zzSW[i],list(Px+3*u+800 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
- axlDBCreateText(zzDW[i],list(Px+3*u+1300 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
- axlDBCreateText(zzDS[i],list(Px+3*u+1900 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
-
-
-
- );for
- axlDBCreateLine( list(Px+3*u:Py-4*u Px+3*u+3000:Py-4*u), 15, stack_layer );up line
- axlDBCreateLine( list(Px+3*u:Py-4*u Px+3*u:Py-4*u-200*(Row_Numer+1)), 15, stack_layer );left line
- axlDBCreateLine( list(Px+3*u:Py-4*u-200*(Row_Numer+1) Px+3*u+3000:Py-4*u-200*(Row_Numer+1)), 15, stack_layer ) ;down line
- axlDBCreateLine( list(Px+3*u+3000:Py-4*u Px+3*u+3000:Py-4*u-200*(Row_Numer+1)), 15, stack_layer );right line
- axlDBCreateLine( list(Px+3*u+700:Py-4*u Px+3*u+700:Py-4*u-200*(Row_Numer+1)), 15, stack_layer );left second line
- axlDBCreateLine( list(Px+3*u+1200:Py-4*u Px+3*u+1200:Py-4*u-200*(Row_Numer+1)), 15, stack_layer ) ;left third line
- axlDBCreateLine( list(Px+3*u+1800:Py-4*u Px+3*u+1800:Py-4*u-200*(Row_Numer+1)), 15, stack_layer );left forth line
- axlClearDynamics()
-
- );defun
复制代码 |
|