找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 802|回复: 5
打印 上一主题 下一主题

求大大指点!代码可以在软件开启后运行一次,第二次指令就无法打开!!

[复制链接]

47

主题

266

帖子

2730

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2730
跳转到指定楼层
1#
发表于 2013-6-14 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
现代码已完成所有需要的功能,但是有一个BUG一直无法解决,就是在确后数据后执行OK(进入第498行的函数时)
,第一次可以正常使用,也可以正常输出,但是在软件完全关闭后,再用"zz1",指令时,就无法第二次打开!!
请大大们指点一下!!!
万分感谢!!
为方便大大们不必要的扣分指导,原码复制如下!
  1. axlCmdRegister("zz1" 'stack_layer)
  2. (defun stack_layer ()
  3.                         time = getCurrentTime()
  4.                         time = parseString(time)
  5.                         day = nth(1 time)
  6.                         month = car(time)
  7.                         month = upperCase(month)
  8.                         year = nth(3 time)
  9.                         date = strcat(" Date: " day " " month " " year)
  10.                         Set_stack_layer()
  11.                         choose_row_form = axlFormCreate( (gensym) Set_stack_form_file nil 'Set_stack_layer_Action t)
  12.                         axlFormDisplay(choose_row_form)
  13.                         axlUIWPrint(choose_row_form date)
  14.                         when(isFile(Set_stack_form_file)
  15.                                 deleteFile(Set_stack_form_file)
  16.                         );when
  17.                        
  18. ;                        Create_stack_layer()
  19. ;                        Create_stack_layer_form = axlFormCreate( (gensym) Create_form_file nil 'Create_stack_layer_Action t)
  20. ;                        axlFormDisplay(Create_stack_layer_form)
  21. ;                        axlUIWPrint(Create_stack_layer_form date)
  22.        
  23.                 )


  24. (defun Set_stack_layer ()
  25.         drain()
  26.         Set_stack_form_file = "choose_row_form.form"
  27.         choose_row_form = outfile(Set_stack_form_file "w")
  28.         fprintf(choose_row_form "#Created by xml2bnf  perl utility\n")
  29.         fprintf(choose_row_form "#Coded by Venkata Ramanan/Santa Clara, CA\n\n")
  30.         fprintf(choose_row_form "FILE_TYPE=FORM_DEFN VERSION=2\n")
  31.         fprintf(choose_row_form "FORM AUTOGREYTEXT\n")
  32.         fprintf(choose_row_form "FIXED\n")
  33.         fprintf(choose_row_form "PORT 40 30\n")
  34.         fprintf(choose_row_form "HEADER \"Form Field Type Demo\"\n\n")
  35.         fprintf(choose_row_form "POPUP <ENUM>\"ITEM1\"\"0\",\"ITEM2\"\"1\",\"ITEM3\"\"2\",\"LAST ONE\"\"3\".\n\n")
  36.         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")
  37.         fprintf(choose_row_form "TILE\n\n")
  38.        
  39.         fprintf(choose_row_form "## ENUM Field in Form## \n")
  40.         fprintf(choose_row_form "FIELD Row_Numer\n")
  41.         fprintf(choose_row_form "FLOC 28 1\n")
  42.         fprintf(choose_row_form "STRFILLIN 2 5\n")
  43.         fprintf(choose_row_form "FGROUP \"Form1\"\n")
  44.         fprintf(choose_row_form "POP \"Row_Numer_List\"\n")
  45.         fprintf(choose_row_form "OPTIONS multiselect prettyprint\n")
  46.         fprintf(choose_row_form "ENDFIELD\n\n")

  47.         fprintf(choose_row_form "## Text Field in Form## \n")
  48.         fprintf(choose_row_form "TEXT \"Choose the row of impedance  :\"\n")
  49.         fprintf(choose_row_form "FLOC 2 1\n")
  50.         fprintf(choose_row_form "TGROUP \"Form1\"\n")
  51.         fprintf(choose_row_form "ENDTEXT\n\n")
  52.        
  53.         fprintf(choose_row_form "ENDTILE\n\n")
  54.         fprintf(choose_row_form "ENDFORM\n\n")

  55.         close(choose_row_form)
  56. )


  57. (defun Set_stack_layer_Action (choose_row_form)
  58. (let (t1 item index field cnt)(printf "field/value %L = %L (int %L\n)"
  59. choose_row_form->curField choose_row_form->curValue, choose_row_form->curValueInt )
  60. (printf "doneState %L\n" choose_row_form->doneState )
  61. case(choose_row_form->curField
  62.                 ("Row_Numer"
  63.                         Row_Numer = atoi(choose_row_form->curValue)
  64. ;                        printf("Row_Numer = %d \n" Row_Numer)
  65. ;                        when(isFile(Create_form_file)
  66. ;                                deleteFile(Create_form_file)
  67. ;                        );when
  68.                         Create_stack_layer()
  69.                         Create_stack_layer_form = axlFormCreate( (gensym) Create_form_file nil 'Create_stack_layer_Action t)
  70.                         axlFormDisplay(Create_stack_layer_form)
  71.                         axlUIWPrint(Create_stack_layer_form date)
  72.                         printf("Row_Numer = %d ***\n" Row_Numer)
  73.                        
  74.                         declare(NAMELayer[Row_Numer])
  75.                         arrayp(NAMELayer)
  76.                         declare(SWline[Row_Numer])
  77.                         arrayp(SWline)
  78.                         declare(DWline[Row_Numer])
  79.                         arrayp(DWline)
  80.                         declare(DSline[Row_Numer])
  81.                         arrayp(DSline)
  82.                        
  83.                 declare(zzSW[Row_Numer])
  84.                 arrayp(zzSW)
  85.                 declare(zzDW[Row_Numer])
  86.                 arrayp(zzDW)
  87.                 declare(zzDS[Row_Numer])
  88.                 arrayp(zzDS)



  89.                        
  90.                        
  91.                 for(lay 0 Row_Numer-1
  92. ;                        wSingle[lay] = nth(lay l_layer)
  93. ;                        wSingle[lay] = sprintf(nil "wS%d" lay)
  94.                         NAME = nLayer[lay]
  95.                         SW = wSingle[lay]
  96.                         DW = wDiff[lay]
  97.                         DS = wSpace[lay]
  98.                         NAMELayer[lay] = sprintf(nil "zNAME%d" lay)
  99.                         NAMEL = NAMELayer[lay]                       
  100.                         SWline[lay] = sprintf(nil "zSW%d" lay)
  101.                         SWL = SWline[lay]
  102.                         DWline[lay] = sprintf(nil "zDW%d" lay)
  103.                         DWL = DWline[lay]
  104.                         DSline[lay] = sprintf(nil "zDS%d" lay)
  105.                         SDL = DSline[lay]
  106.                         zzSW[lay] = "0"
  107.                         zzDW[lay] = "0"
  108.                         zzDS[lay] = "0"
  109.                        
  110.                        
  111.                         if( boundp('SWL)!=nil then
  112.                         NAMEL = "nil"
  113.                         SWL = "nil"
  114.                         DWL = "nil"
  115.                         SDL = "nil"
  116.                         )
  117.                         printf("++++SWline++++%s++++++++\n"  SWline[lay])
  118.                         axlFormSetField(Create_stack_layer_form NAME NAMEL)
  119.                         axlFormSetField(Create_stack_layer_form SW SWL)
  120.                         axlFormSetField(Create_stack_layer_form DW DWL)
  121.                         axlFormSetField(Create_stack_layer_form DS SDL)
  122. ;                        printf("----%d------\n" lay)
  123.                        
  124. ;                        printf("***SW**%s**xxs**%s**\n" SW  xxs)
  125.                        
  126.                         )

  127.                
  128.                 )
  129.         )
  130.                 )

  131.         if((nequal choose_row_form->doneState 0)
  132.         axlFormClose(choose_row_form))
  133. )


  134. (defun Create_stack_layer ()
  135.         printf("**************\n")
  136.         Create_form_file = "Create_stack_layer_form.form"
  137.         Create_stack_layer_form = outfile(Create_form_file "w")
  138.         if(car(axlDBGetDesignUnits())=="mils" then
  139.                         ZUnit = "mil"
  140.                         else ZUnit ="mm"
  141.                 );if
  142.        
  143.         fprintf(Create_stack_layer_form "#Created by xml2bnf  perl utility\n")
  144.         fprintf(Create_stack_layer_form "#Coded by Venkata Ramanan/Santa Clara, CA\n\n")
  145.         fprintf(Create_stack_layer_form "FILE_TYPE=FORM_DEFN VERSION=2\n")
  146.         fprintf(Create_stack_layer_form "FORM AUTOGREYTEXT\n")
  147.         fprintf(Create_stack_layer_form "FIXED\n")
  148.         fprintf(Create_stack_layer_form "PORT 80 30\n")
  149.         fprintf(Create_stack_layer_form "HEADER \"Form Field Type Demo\"\n\n")
  150.         fprintf(Create_stack_layer_form "TILE\n\n")
  151.         fprintf(Create_stack_layer_form "## ENUM Field in Form## \n")

  152.         fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  153.         fprintf(Create_stack_layer_form "TEXT \"LAYER\"\n")
  154.         fprintf(Create_stack_layer_form "FLOC 2 1\n")
  155.         fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  156.         fprintf(Create_stack_layer_form "ENDTEXT\n\n")

  157.         fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  158.         fprintf(Create_stack_layer_form "TEXT \"50 ohm\"\n")
  159.         fprintf(Create_stack_layer_form "FLOC 19 1\n")
  160.         fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  161.         fprintf(Create_stack_layer_form "ENDTEXT\n\n")

  162.         fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  163.         fprintf(Create_stack_layer_form "TEXT \"100 ohm\"\n")
  164.         fprintf(Create_stack_layer_form "FLOC 31 1\n")
  165.         fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  166.         fprintf(Create_stack_layer_form "ENDTEXT\n\n")

  167.         fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  168.         fprintf(Create_stack_layer_form "TEXT \"Reference layer\"\n")
  169.         fprintf(Create_stack_layer_form "FLOC 48 1\n")
  170.         fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  171.         fprintf(Create_stack_layer_form "ENDTEXT\n\n")
  172.         n = 0
  173.        
  174.                 p = axlGetParam("paramLayerGroup:ETCH")
  175.                 l_layer = p->groupMembers
  176.                 nblayer = p->nChildren
  177.                 declare(nLayer[Row_Numer])
  178.                 arrayp(nLayer)
  179.                 declare(wSingle[Row_Numer])
  180.                 arrayp(wSingle)
  181.                 declare(wDiff[Row_Numer])
  182.                 arrayp(wDiff)
  183.                 declare(wSpace[Row_Numer])
  184.                 arrayp(wSpace)
  185.        
  186.         for(lay 0 Row_Numer-1
  187.                         nLayer[lay] = sprintf(nil "NAME%d" lay)
  188.                         NAME = nLayer[lay]
  189.                        
  190.                         wSingle[lay] = sprintf(nil "SW%d" lay)
  191.                         SW = wSingle[lay]
  192.                        
  193.                         wDiff[lay] = sprintf(nil "DW%d" lay)
  194.                         DW = wDiff[lay]
  195.                        
  196.                         wSpace[lay] = sprintf(nil "DS%d" lay)
  197.                         DS = wSpace[lay]
  198.        
  199.                 i = lay*2+4
  200. ;                printf("i = %d\n" i)
  201.                 fprintf(Create_stack_layer_form "## Input Field in Form## \n")
  202.                 fprintf(Create_stack_layer_form "FIELD %s\n" NAME)
  203.                 fprintf(Create_stack_layer_form "FLOC 2 %d\n" i)
  204.                 fprintf(Create_stack_layer_form "FSIZE 8 2\n")
  205.                 fprintf(Create_stack_layer_form "STRFILLIN 14 70\n")
  206.                 fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  207.                 fprintf(Create_stack_layer_form "VALUE \"Input layer\"\n")
  208.                 fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")

  209.                 fprintf(Create_stack_layer_form "## Input Field in Form## \n")
  210.                 fprintf(Create_stack_layer_form "FIELD %s\n" SW)
  211.                 fprintf(Create_stack_layer_form "FLOC 19 %d\n" i)
  212.                 fprintf(Create_stack_layer_form "FSIZE 5 2\n")
  213.                 fprintf(Create_stack_layer_form "STRFILLIN 4 70\n")
  214.                 fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  215.                 fprintf(Create_stack_layer_form "VALUE \"20\"\n")
  216.                 fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")

  217.                 fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  218.                 fprintf(Create_stack_layer_form "TEXT \"%s\"\n" ZUnit)
  219.                 fprintf(Create_stack_layer_form "FLOC 26 %d\n" i)
  220.                 fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  221.                 fprintf(Create_stack_layer_form "ENDTEXT\n\n")

  222.                 fprintf(Create_stack_layer_form "## Input Field in Form## \n")
  223.                 fprintf(Create_stack_layer_form "FIELD %s\n" DW)
  224.                 fprintf(Create_stack_layer_form "FLOC 30 %d\n" i)
  225.                 fprintf(Create_stack_layer_form "FSIZE 6 2\n")
  226.                 fprintf(Create_stack_layer_form "STRFILLIN 9 70\n")
  227.                 fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  228.                 fprintf(Create_stack_layer_form "VALUE \"20/10\"\n")
  229.                 fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")

  230.                 fprintf(Create_stack_layer_form "## Text Field in Form## \n")
  231.                 fprintf(Create_stack_layer_form "TEXT \"%s\"\n" ZUnit)
  232.                 fprintf(Create_stack_layer_form "FLOC 42 %d\n" i)
  233.                 fprintf(Create_stack_layer_form "TGROUP \"Form1\"\n")
  234.                 fprintf(Create_stack_layer_form "ENDTEXT\n\n")
  235.        
  236.                 fprintf(Create_stack_layer_form "## Input Field in Form## \n")
  237.                 fprintf(Create_stack_layer_form "FIELD %s\n" DS)
  238.                 fprintf(Create_stack_layer_form "FLOC 48 %d\n" i)
  239.                 fprintf(Create_stack_layer_form "FSIZE 20 4\n")
  240.                 fprintf(Create_stack_layer_form "STRFILLIN 20 70\n")
  241.                 fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  242.                 fprintf(Create_stack_layer_form "VALUE \" Input reference layer\"\n")
  243.                 fprintf(Create_stack_layer_form "ENDFIELD \n\n\n")
  244.         )
  245.         ok_row = Row_Numer*2 +6
  246.         fprintf(Create_stack_layer_form "## Button Field in FORM ## \n")
  247.         fprintf(Create_stack_layer_form "FIELD myOK\n")
  248.         fprintf(Create_stack_layer_form "FLOC 13 %d\n" ok_row)
  249.         fprintf(Create_stack_layer_form "MENUBUTTON \"OK\" 14 3\n")
  250.         fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  251.         fprintf(Create_stack_layer_form "ENDFIELD \n\n")

  252.         fprintf(Create_stack_layer_form "## Button Field in FORM ## \n")
  253.         fprintf(Create_stack_layer_form "FIELD Cancel\n")
  254.         fprintf(Create_stack_layer_form "FLOC 34 %d\n" ok_row)
  255.         fprintf(Create_stack_layer_form "MENUBUTTON \"Cancel\" 13 3\n")
  256.         fprintf(Create_stack_layer_form "FGROUP \"Form1\"\n")
  257.         fprintf(Create_stack_layer_form "ENDFIELD \n\n")
  258.        
  259.         fprintf(Create_stack_layer_form "ENDTILE\n\n")
  260.         fprintf(Create_stack_layer_form "ENDFORM\n\n")

  261.         close(Create_stack_layer_form)
  262. )


  263. (defun Create_stack_layer_Action (Create_stack_layer_form)
  264.         (let (t1 item index field cnt)(printf "field/value %L = %L (int %L\n)"
  265.         Create_stack_layer_form->curField Create_stack_layer_form->curValue, Create_stack_layer_form->curValueInt )
  266.         (printf "doneState %L\n" Create_stack_layer_form->doneState )       
  267.                 case(Create_stack_layer_form->curField       
  268.                         ("NAME0"
  269.                                 nLayer[0] = Create_stack_layer_form->curValue
  270.                                 printf("nLayer[0] = %s \n" nLayer[0])
  271.                                
  272.                         )
  273.                         ("NAME1"
  274.                                 nLayer[1] = Create_stack_layer_form->curValue

  275.                         )
  276.                         ("NAME2"
  277.                                 nLayer[2] = Create_stack_layer_form->curValue

  278.                         )
  279.                         ("NAME3"
  280.                                 nLayer[3] = Create_stack_layer_form->curValue

  281.                         )
  282.                         ("NAME4"
  283.                                 nLayer[4] = Create_stack_layer_form->curValue
  284.                                
  285.                         )
  286.                         ("NAME5"
  287.                                 nLayer[5] = Create_stack_layer_form->curValue
  288.                                
  289.                         )
  290.                         ("NAME6"
  291.                                 nLayer[6] = Create_stack_layer_form->curValue
  292.                                
  293.                         )
  294.                         ("NAME7"
  295.                                 nLayer[7] = Create_stack_layer_form->curValue
  296.                                
  297.                         )
  298.                         ("NAME8"
  299.                                 nLayer[8] = Create_stack_layer_form->curValue
  300.                                
  301.                         )
  302.                         ("NAME9"
  303.                                 nLayer[9] = Create_stack_layer_form->curValue
  304.                                
  305.                         )
  306.                
  307.                         ("SW0"
  308.                                 zzSW[0] = Create_stack_layer_form->curValue

  309.                         )
  310.                        
  311.                         ("SW1"
  312.                                 zzSW[1] = Create_stack_layer_form->curValue
  313.                                
  314.                         )
  315.                        
  316.                         ("SW2"
  317.                                 zzSW[2] = Create_stack_layer_form->curValue
  318.                                
  319.                         )
  320.                        
  321.                         ("SW3"
  322.                                 zzSW[3] = Create_stack_layer_form->curValue
  323.                                
  324.                         )
  325.                        
  326.                         ("SW4"
  327.                                 zzSW[4] = Create_stack_layer_form->curValue
  328.                                
  329.                         )
  330.                        
  331.                         ("SW5"
  332.                                 zzSW[5] = Create_stack_layer_form->curValue
  333.                        
  334.                         )
  335.                        
  336.                         ("SW6"
  337.                                 zzSW[6] = Create_stack_layer_form->curValue
  338.                                
  339.                         )
  340.                        
  341.                         ("SW7"
  342.                                 zzSW[7] = Create_stack_layer_form->curValue

  343.                                
  344.                         )
  345.                        
  346.                         ("SW8"
  347.                                 zzSW[8] = Create_stack_layer_form->curValue
  348.                                
  349.                         )
  350.                        
  351.                         ("SW9"
  352.                                 zzSW[9] = Create_stack_layer_form->curValue
  353.                         )
  354.                                
  355.                         ("DW0"
  356.                                 zzDW[0] = Create_stack_layer_form->curValue

  357.                         )
  358.                        
  359.                         ("DW1"
  360.                                 zzDW[1] = Create_stack_layer_form->curValue
  361.                                
  362.                         )
  363.                        
  364.                         ("DW2"
  365.                                 zzDW[2] = Create_stack_layer_form->curValue
  366.                                
  367.                         )
  368.                        
  369.                         ("DW3"
  370.                                 zzDW[3] = Create_stack_layer_form->curValue
  371.                        
  372.                         )
  373.                        
  374.                         ("DW4"
  375.                                 zzDW[4] = Create_stack_layer_form->curValue
  376.                                
  377.                         )
  378.                        
  379.                         ("DW5"
  380.                                 zzDW[5] = Create_stack_layer_form->curValue
  381.                        
  382.                         )
  383.                        
  384.                         ("DW6"
  385.                                 zzDW[6] = Create_stack_layer_form->curValue
  386.                                
  387.                         )
  388.                        
  389.                         ("DW7"
  390.                                 zzDW[7] = Create_stack_layer_form->curValue

  391.                                
  392.                         )
  393.                        
  394.                         ("DW8"
  395.                                 zzDW[8] = Create_stack_layer_form->curValue
  396.                                
  397.                         )
  398.                        
  399.                         ("DW9"
  400.                                 zzDW[9] = Create_stack_layer_form->curValue
  401.                                
  402.                         )
  403.                                                
  404.                         ("DS0"
  405.                                 zzDS[0] = Create_stack_layer_form->curValue
  406.                                

  407.                         )
  408.                        
  409.                         ("DS1"
  410.                                 zzDS[1] = Create_stack_layer_form->curValue
  411.                                
  412.                         )
  413.                        
  414.                         ("DS2"
  415.                                 zzDS[2] = Create_stack_layer_form->curValue                       
  416.                                
  417.                         )
  418.                        
  419.                         ("DS3"
  420.                                 zzDS[3] = Create_stack_layer_form->curValue       
  421.                                
  422.                         )
  423.                        
  424.                         ("DS4"
  425.                                 zzDS[4] = Create_stack_layer_form->curValue       
  426.                                
  427.                         )
  428.                        
  429.                         ("DS5"
  430.                                 zzDS[5] = Create_stack_layer_form->curValue               
  431.                                
  432.                         )
  433.                        
  434.                         ("DS6"
  435.                                 zzDS[6] = Create_stack_layer_form->curValue       
  436.                                
  437.                         )
  438.                        
  439.                         ("DS7"
  440.                                 zzDS[7] = Create_stack_layer_form->curValue
  441.                                        
  442.                         )
  443.                        
  444.                         ("DS8"
  445.                                 zzDS[8] = Create_stack_layer_form->curValue                       
  446.                                
  447.                         )
  448.                        
  449.                         ("DS9"
  450.                                 zzDS[9] = Create_stack_layer_form->curValue               
  451.                                
  452.                         )
  453.                
  454.                         ("myOK"
  455. ;;;;;;;;;;;;;;;;;;test date;;;;;;;;;;;;;;;;;;;;;;                               
  456. ;                                for(i 0 Row_Numer-1
  457. ;                                        printf("*************\n")
  458. ;                                        printf("layer name = %s \n" nLayer[i])
  459. ;                                        printf("single width = %s \n" zzSW[i])
  460. ;                                        printf("different width and space = %s \n" zzDW[i])
  461. ;                                        printf("refernce layer = %s \n" zzDS[i])
  462. ;                                );for
  463. ;;;;;;;;;;;;;;;;;;test date;;;;;;;;;;;;;;;;;;;;;;

  464.                                 Impedance_table();开启后在软件件内无法执行两次以上
  465.                                 axlClearSelSet()
  466.                                 axlFormClose(Create_stack_layer_form)
  467.                                 printf("test\n")
  468.                         ;Button Field
  469.                         ;Enter Action Here
  470.                        
  471.                         )
  472.                         ("Cancel"
  473.                                 axlFormClose(Create_stack_layer_form)
  474.                                

  475.                         ;Button Field
  476.                         ;Enter Action Here
  477.                        
  478.                         )
  479.         )
  480. )
  481.        
  482.                

  483. if((nequal Create_stack_layer_form->doneState 0)
  484. axlFormClose(Create_stack_layer_form))
  485. )


  486. defun( Impedance_table ()
  487.         stack_layer = "MANUFACTURING/IMPEDANCE"
  488.         axlClearSelSet()
  489.         Display = axlVisibleGet()
  490.         axlVisibleDesign(nil)
  491.         axlVisibleLayer(stack_layer t)
  492.         axlDBRefreshId(axlDBGetDesign())
  493.         axlSetFindFilter(?enabled '(noall shapes text lines ) ?onButtons '(noall shapes text lines))
  494.         axlDeleteObject(axlGetSelSet( axlAddSelectAll() ) )
  495.         axlVisibleSet(Display)
  496. ;        axlClearDynamics()
  497.         Unit=car(axlDBGetDesignUnits())
  498.         case(Unit
  499.                 ("millimeters" u=1)
  500.                 ("mils" u=40)
  501.         );end case
  502.         L=66*u       
  503.         H=-1*(5+Row_Numer*4)*u
  504.         axlClearDynamics()
  505.         mypath = axlPathStart(list( 0:0 L:0 L:H 0:H 0:0))
  506.         axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0)
  507.        
  508.         if(axlIsLayer(stack_layer) == nil then
  509.                 axlLayerCreateNonConductor(stack_layer)
  510.         );if
  511.         (axlUIWRedraw nil)
  512.         axlVisibleLayer(stack_layer t)
  513.        
  514.         pointStart=nil
  515.        
  516.         pointStart = axlEnterPoint()
  517.         Px=xCoord(pointStart)
  518.         Py=yCoord(pointStart)
  519.         myorient=make_axlTextOrientation(?textBlock "4",?rotation 0., ?mirrored nil, ?justify "left")
  520.          
  521.         axlDBCreateText("IMPEDANCE_TABLE:",list(Px+3*u Py-4*u+100), myorient, stack_layer,nil)
  522.         axlDBCreateText("LAYER",list(Px+3*u+100 Py-4*u-100), myorient, stack_layer,nil)
  523.         axlDBCreateText("50ohm",list(Px+3*u+800 Py-4*u-100), myorient, stack_layer,nil)
  524.         axlDBCreateText("100ohm",list(Px+3*u+1300 Py-4*u-100), myorient, stack_layer,nil)
  525.         axlDBCreateText("REFERENCE LAYER",list(Px+3*u+1900 Py-4*u-100), myorient, stack_layer,nil)
  526.        
  527. ;                                        printf("layer name = %s \n" nLayer[i])
  528. ;                                        printf("single width = %s \n" zzSW[i])
  529. ;                                        printf("different width and space = %s \n" zzDW[i])
  530. ;                                        printf("refernce layer = %s \n" zzDS[i])
  531.        
  532.        
  533.         for(i 0 Row_Numer-1
  534.                 n = i+1
  535.                 axlDBCreateLine( list(Px+3*u:Py-4*u-200*n Px+3*u+3000:Py-4*u-200*n), 15, stack_layer );up line
  536. ;                layer_name[i] = strcat(nLayer[i])
  537. ;                layer_Single_Width[i]= strcat(zzSW[i] )
  538. ;                layer_Differential_WidthSpace[i]= strcat(zzDW[i])
  539. ;                layer_reference[i] =stract(zzDS[i])
  540.                
  541.                 axlDBCreateText(nLayer[i],list(Px+3*u+100 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
  542.                 axlDBCreateText(zzSW[i],list(Px+3*u+800 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
  543.                 axlDBCreateText(zzDW[i],list(Px+3*u+1300 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
  544.                 axlDBCreateText(zzDS[i],list(Px+3*u+1900 Py-4*u-200*(n+0.5)), myorient, stack_layer,nil)
  545.                
  546.                
  547.                
  548.         );for
  549.         axlDBCreateLine( list(Px+3*u:Py-4*u Px+3*u+3000:Py-4*u), 15, stack_layer );up line
  550.         axlDBCreateLine( list(Px+3*u:Py-4*u Px+3*u:Py-4*u-200*(Row_Numer+1)), 15, stack_layer );left line
  551.         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
  552.         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
  553.         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
  554.         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
  555.         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
  556.         axlClearDynamics()
  557.        
  558. );defun
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!
争风吃醋是女人最大的弱点  争强好胜是所有男人的死穴

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
2#
发表于 2013-6-14 16:20 | 只看该作者
525行stack_layer = "MANUFACTURING/IMPEDANCE"

第二行(defun stack_layer ()

别用这么多全局变量了改局部变量吧

11

主题

148

帖子

1465

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1465
3#
发表于 2013-6-14 16:37 | 只看该作者
问题应该在这里吧:
                        when(isFile(Set_stack_form_file)
                                deleteFile(Set_stack_form_file)
                        );when

你考虑下如果把Set_stack_form_file删除了。就没有form文件了。

47

主题

266

帖子

2730

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2730
4#
 楼主| 发表于 2013-6-14 16:38 | 只看该作者
betamelody

发表于 2013-6-14 16:20 |只看该作者
525行stack_layer = "MANUFACTURING/IMPEDANCE"

第二行(defun stack_layer ()

别用这么多全局变量了改局部变量吧


万分感谢,,一直就没想到这个原因,我还一直在查内存释放的问题!!
关于全局变量和部局变量的在哪个资料里多一些!
不好意思,我一直是写程序盲,是去看10月才开始学习skill,一般是要用到什么就去help里面找的!
如果有资料传我一个吧!!
谢谢!!
争风吃醋是女人最大的弱点  争强好胜是所有男人的死穴

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
5#
发表于 2013-6-14 16:43 | 只看该作者
本帖最后由 betamelody 于 2013-6-14 16:44 编辑

比如第一个函数,这样写
  1. (defun stack_layer ()
  2.   prog((time day month year date choose_row_form)
  3.                         time = getCurrentTime()
  4.                         time = parseString(time)
  5.                         day = nth(1 time)
  6.                         month = car(time)
  7.                         month = upperCase(month)
  8.                         year = nth(3 time)
  9.                         date = strcat(" Date: " day " " month " " year)
  10.                         Set_stack_layer()
  11.                         choose_row_form = axlFormCreate( (gensym) Set_stack_form_file nil 'Set_stack_layer_Action t)
  12.                         axlFormDisplay(choose_row_form)
  13.                         axlUIWPrint(choose_row_form date)
  14.                         when(isFile(Set_stack_form_file)
  15.                                 deleteFile(Set_stack_form_file)
  16.                         );when
  17.         )
  18. )
复制代码
其中time day month year date choose_row_form变量只在prog内部有效

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

6#
发表于 2013-6-14 16:56 | 只看该作者
stack_layer变量被覆写了。
谁画出这天地 又画下我和你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-23 07:21 , Processed in 0.076943 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表