找回密码
 注册
关于网站域名变更的通知
查看: 156|回复: 10
打印 上一主题 下一主题

一个改变钻孔表模式的程序

[复制链接]
  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    跳转到指定楼层
    1#
     楼主| 发表于 2025-5-12 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本帖最后由 式试1813 于 2025-5-15 09:21 编辑
    1. ;NCmode钻孔模式form构建  
    2. procedure(NCmode()
    3.      formfile = outfile("./nc.form")
    4.         (fprintf formfile "FILE_TYPE=FORM_DEFN VERSION=2\n")
    5.         (fprintf formfile "FORM\n")
    6.         (fprintf formfile "FIXED\n")
    7.         (fprintf formfile "PORT 32 46 \n")
    8.         (fprintf formfile "HEADER \"One Click Output Tools\"\n") (fprintf formfile "\n")
    9.         (fprintf formfile "TILE\n")
    10.         (fprintf formfile "TEXT  \"Click to execute\"blue_a\n")
    11.         (fprintf formfile "TLOC 4 1\n")
    12.         (fprintf formfile "ENDTEXT \n")

    13.         (fprintf formfile "TEXT  \"Only 1:\"red_a\n")
    14.         (fprintf formfile "TLOC 1 4\n")
    15.         (fprintf formfile "ENDTEXT \n")

    16.         (fprintf formfile "FIELD nc_mode1\n")
    17.         (fprintf formfile "FLOC 9 4\n")
    18.         (fprintf formfile "CHECKLIST \"NC1\" \"1\"\n")
    19.         (fprintf formfile "ENDFIELD\n")

    20.         (fprintf formfile "FIELD nc_mode2\n")
    21.         (fprintf formfile "FLOC 17 4\n")
    22.         (fprintf formfile "CHECKLIST \"NC2\" \"1\"\n")
    23.         (fprintf formfile "ENDFIELD\n")

    24.         (fprintf formfile "\n")
    25.         (fprintf formfile "ENDTILE\n") ;结束TILE
    26.         (fprintf formfile "\n")
    27.         (fprintf formfile "ENDFORM\n")  ;结束FORM
    28.        
    29.         close(formfile)
    30.         setform = axlFormCreate((gensym) "nc.form" '("C" "inner") 'func1 t)
    31.         axlFormDisplay(setform)
    32.         axlFormColorize(setform "blue_a" 'text 'blue)
    33.         axlFormColorize(setform "red_a" 'text 'red)
    34.         deleteFile("nc.form")
    35. )
    36. ;form功能构建
    37. procedure( (func1 dummy)
    38. prog(nil
    39.     case( (getq setform cuRField)
    40. /*       
    41.                   ("nc_mode1" NCmode_Init())
    42.                   ("nc_mode2" NCmode_Init())
    43.                   
    44. */
    45.            ("nc_mode1"
    46.        when(setform->curValue ;这样用when后就不会出现bug
    47.          NCmode_Init()
    48.             ))
    49.      ("nc_mode2"
    50.        when(setform->curValue ;这样用when后就不会出现bug
    51.          NCmode_Init()
    52.             ))

    53.        
    54.           )
    55.                   )
    56.                   )
    57. ;按钮或选项功能函数
    58. defun( NCmode_Init ()
    59. let((command1 command2)
    60. if(axlFormGetField(setform "nc_mode1")
    61. then
    62. sprintf(command1 "setwindow pcb;generaledit;ncdrill legend;
    63.                         setwindow form.nc_drilllegend;FORM nc_drilllegend layer_pair_legends YES;
    64.                         FORM nc_drilllegend done; setwindow pcb")
    65. axlShellPost(command1)
    66. axlShell("Done")
    67.   else
    68. sprintf(command2 "setwindow pcb;generaledit;ncdrill legend;
    69.                         setwindow form.nc_drilllegend;FORM nc_drilllegend by_layer_legends YES;
    70.                         FORM nc_drilllegend done; setwindow pcb")
    71. axlShellPost(command2)
    72. axlShell("Done")
    73. )
    74. )
    75. )
    复制代码


  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    2#
     楼主| 发表于 2025-5-12 17:00 | 只看该作者
    初次进入form,两个都未选择,就可以选择模式一或者模式二。一旦选择一次,选择另一个就会软件bug住了
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    3#
    发表于 2025-5-12 18:29 | 只看该作者
    本帖最后由 db-_- 于 2025-5-12 18:31 编辑

    涉及到脚本的SKILL,最top的函数axlCmdRegister时最好选择?cmdType为general

    点评

    但是我这个是这么设置的。。。  详情 回复 发表于 2025-5-13 10:13
  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    5#
     楼主| 发表于 2025-5-13 10:13 | 只看该作者
    db-_- 发表于 2025-5-12 18:29
    涉及到脚本的SKILL,最top的函数axlCmdRegister时最好选择?cmdType为general

    但是我这个是这么设置的。。。
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    6#
    发表于 2025-5-13 18:25 | 只看该作者
    可能你还少了一个点击坐标放下来的操作吧。

    点评

    钻孔表是手动放的,我感觉这个bug是最开始模式一和模式二都是nil,所以不执行。选择其中一个,那么有个模式会变为t。但是再选择另一个的时候,前面选择的那个模式虽然会变成nil,但是在切换的瞬间,其实都是t,所以  详情 回复 发表于 2025-5-14 09:08
  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    7#
     楼主| 发表于 2025-5-14 09:08 | 只看该作者
    db-_- 发表于 2025-5-13 18:25
    可能你还少了一个点击坐标放下来的操作吧。

    钻孔表是手动放的,我感觉这个bug是最开始模式一和模式二都是nil,所以不执行。选择其中一个,那么有个模式会变为t。但是再选择另一个的时候,前面选择的那个模式虽然会变成nil,但是在切换的瞬间,其实都是t,所以就卡住了
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    8#
    发表于 2025-5-14 09:31 | 只看该作者
    你可以放个全码,帮你看看。

    点评

    已贴到1L了,帮忙看看,谢谢  详情 回复 发表于 2025-5-14 11:22
  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    9#
     楼主| 发表于 2025-5-14 11:22 | 只看该作者
    db-_- 发表于 2025-5-14 09:31
    你可以放个全码,帮你看看。

    已贴到1L了,帮忙看看,谢谢
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    10#
    发表于 2025-5-14 14:05 | 只看该作者
    改好了。
    1.                 ("nc_mode1"
    2.                     when(setform->curValue
    3.                         NCmode_Init()
    4.                     )
    5.                 )
    6.                 ("nc_mode2"
    7.                     when(setform->curValue
    8.                         NCmode_Init()
    9.                     )
    10.                 )
    复制代码

    点评

    感谢,真的可以  详情 回复 发表于 2025-5-14 16:28
  • TA的每日心情
    开心
    2025-6-4 15:44
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    11#
     楼主| 发表于 2025-5-14 16:28 | 只看该作者

    感谢,真的可以
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-5 02:36 , Processed in 0.093750 second(s), 24 queries , Gzip On.

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

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

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