找回密码
 注册
关于网站域名变更的通知
12
返回列表 发新帖
楼主: ashnoer
打印 上一主题 下一主题

【Skill分享】快速生成差分孔反焊盘skill-改

[复制链接]
  • TA的每日心情
    开心
    2025-6-23 15:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    16#
    发表于 2025-6-16 17:24 | 只看该作者
    Allegro_wang 发表于 2025-6-16 17:16
    单位是mil没问题,分别在16.6/17.4版本测试都是一样的问题,输入10mil,如果正常外扩,禁布区与铜自动避让 ...

    参数设置无效,始终为默认值!见图

    1.png (20.94 KB, 下载次数: 0)

    添加时的参数设置

    添加时的参数设置

    2.png (19.88 KB, 下载次数: 0)

    添加后

    添加后
  • TA的每日心情
    郁闷
    2024-7-25 15:18
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    17#
     楼主| 发表于 2025-6-17 14:17 | 只看该作者
    Allegro_wang 发表于 2025-6-16 17:16
    单位是mil没问题,分别在16.6/17.4版本测试都是一样的问题,输入10mil,如果正常外扩,禁布区与铜自动避让 ...

    我这边是正常的

    点评

    难道是复制粘贴有问题?能否直接上传一个.il文件的附件?再出问题那就是可能是allegro补丁版本?目前使用的16.6补丁S115  详情 回复 发表于 2025-6-17 15:49
  • TA的每日心情
    开心
    2025-6-23 15:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    18#
    发表于 2025-6-17 15:49 | 只看该作者
    ashnoer 发表于 2025-6-17 14:17
    我这边是正常的

    难道是复制粘贴有问题?能否直接上传一个.il文件的附件?再出问题那就是可能是allegro补丁版本?目前使用的16.6补丁S115

    点评

    我发不了文件,刚重新发了一下,你再看看  详情 回复 发表于 2025-6-19 12:49
  • TA的每日心情
    郁闷
    2024-7-25 15:18
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    19#
     楼主| 发表于 2025-6-19 12:48 | 只看该作者
    原来的可能是拿错文件了,这是正确的代码
    1. ; --------------------------------------------------
    2. ; Allegro version: 16.6
    3. ; Written by: Lianora
    4. ; date: 2021.09.11
    5. ; --------------------------------------------------
    6. ; 功能说明:单击选择两个差分信号过孔,生成过孔反焊盘
    7. ;           有助于减小差分阻抗在过孔处的突变程度
    8. ; --------------------------------------------------

    9. axlCmdRegister(
    10.   "DVAP"
    11.   'lnDiffViaAntiPad
    12.   ?cmdType "interactive"
    13.   ?doneCmd 'lnDone
    14.   ?cancelCmd 'lnCancel
    15. )

    16. ; --------------------------------------------------
    17. ; 主程序入口函数
    18. ; --------------------------------------------------
    19. procedure(lnDiffViaAntiPad(@optional (expandValue_via 16))
    20.   let(()
    21.   ; 设置 find 栏参数,仅勾选 "vias"
    22.     axlSetFindFilter(
    23.       ?enabled list("noall" "Pins" "vias")
    24.       ?onButtons list("noall" "Pins" "vias")
    25.     )
    26.   ; 设置右键弹出功能项
    27.     ln_popup = axlUIPopupDefine(nil (list
    28.             (list "Done" 'lnDone)
    29.             (list "Oops" 'lnOops)
    30.             (list "Cancel" 'lnCancel))
    31.           )
    32.     axlUIPopupSet(ln_popup)
    33.   
    34.   ; 创建一个表单,在 options 栏中显示需要设置的参数
    35.     lnCreateParamForm()
    36.     axlDBControl('activeLayer "ROUTE KEEPOUT/ALL")
    37.     axlFormSetField(createparmform "expandValue_via" expandValue_via)
    38.    
    39.   ; 定义一个循环标记
    40.     notdone = t
    41.   
    42.   ;获取 class/subclass 信息
    43.     t_activelayer = axlGetActiveLayer()
    44.   
    45.     ln_mark = axlDBTransactionStart()
    46.    
    47.     while(notdone

    48.       l_via1 = nil
    49.       l_via2 = nil

    50.       P = axlGetSelSet(axlSelect(?prompt "Please select the first via...\n"))
    51.       (case length(P)
    52.         (1 ;继续选择第二个过孔
    53.           l_via1 = car(P)
    54.           printf("Please select the second via...\n")
    55.           l_via2 = car(axlGetSelSet(axlSingleSelectPoint()))
    56.           CreateShape(l_via1 l_via2)
    57.         )
    58.         (2 ;直接创建
    59.           CreateShape(car(P) cadr(P))
    60.         )
    61.       )
    62.     )
    63.   )
    64. )

    65. (procedure CreateShape(l_via1 l_via2)
    66.       if(l_via2 then
    67.         axlDBTransactionMark(ln_mark)
    68.         pad1 = axlDBGetPad(l_via1 "ETCH/TOP" "REGULAR")
    69.         pad2 = axlDBGetPad(l_via2 "ETCH/TOP" "REGULAR")
    70.   ; 计算出外扩相应尺寸后的线宽     
    71.         cline_width = caadr(pad1->bBox) - caar(pad1->bBox) + expandValue_via
    72.         
    73.         printf("cline_width is %-.2f \n" cline_width)
    74.   ; 在TOP层创建一根线段     
    75.         l_cline = axlDBCreateLine(
    76.                 list(l_via1->xy l_via2->xy)
    77.                 cline_width
    78.                 "ANTI ETCH/TOP"
    79.                 nil
    80.                 nil
    81.               )
    82.   ; 通过 cline2shape 将 cline 转换成相应层面的 shape
    83.         if(l_cline then
    84.           l_poly = axlPolyFromDB(caar(l_cline) ?endCapType "ROUND")
    85.           l_shape = axlDBCreateShape(car(l_poly) t t_activelayer)
    86.   ; 如果所在层面是 ROUTE KEEPOUT , 需给 shpae 增加如下两个属性,可以消除走线和过孔的DRC
    87.   ; 并保留避让铜皮属性
    88.           if(car(parseString(t_activelayer "/")) == "ROUTE KEEPOUT" then
    89.             axlDBAddProp(car(l_shape) list("vias_allowed" t))
    90.             axlDBAddProp(car(l_shape) list("routes_allowed" t))
    91.           )
    92.   ; 删除辅助 cline
    93.           axlDeleteObject(caar(l_cline))
    94.         )
    95.       )
    96. )

    97. ; --------------------------------------------------
    98. ; 创建参数设置 form 函数
    99. ; --------------------------------------------------
    100. procedure(lnCreateParamForm()
    101.   let((FileName FilePort)
    102.     FileName = "create_parm_form.form"
    103.     FilePort = outfile(FileName "w")
    104.    
    105.     fprintf(FilePort "FILE_TYPE=FORM_DEFN VERSION=2\n")
    106.     fprintf(FilePort "FORM\n")
    107.     fprintf(FilePort "FIXED\n")
    108.     fprintf(FilePort "PORT 24 50\n")
    109.     fprintf(FilePort "HEADER \"Diff Via Anti Pad\"\n\n")
    110.    
    111.     fprintf(FilePort "POPUP <class>\"class\"\n")
    112.     fprintf(FilePort "POPUP <subclass>\"subclass\"\n")
    113.    
    114.     fprintf(FilePort "TILE\n\n")
    115.    
    116.     fprintf(FilePort "TEXT \"Active Class and Subclass:\"\n\n")
    117.     fprintf(FilePort "TLOC 1 1\n")
    118.     fprintf(FilePort "ENDTEXT\n\n")
    119.   ; class enumeration drop-dowm box
    120.     fprintf(FilePort "FIELD class\n")
    121.     fprintf(FilePort "FLOC 5 4\n")
    122.     fprintf(FilePort "ENUMSET 19\n")
    123.     fprintf(FilePort "OPTIONS prettyprint\n")   
    124.     fprintf(FilePort "POP \"class\"\n")
    125.     fprintf(FilePort "ENDFIELD\n\n")
    126.   ; subclass color check box  
    127.     fprintf(FilePort "FIELD subcolor\n")
    128.     fprintf(FilePort "FLOC 2 7\n")
    129.     fprintf(FilePort "COLOR 2 1\n")
    130.     fprintf(FilePort "OPTIONS colcrchooser\n")
    131.     fprintf(FilePort "ENDFIELD\n\n")
    132.   ; subclass enumeration drop-dowm box  
    133.     fprintf(FilePort "FIELD subclass\n")
    134.     fprintf(FilePort "FLOC 5 7\n")
    135.     fprintf(FilePort "ENUMSET 19\n")
    136.     fprintf(FilePort "OPTIONS prettyprint ownerdrawn\n")
    137.     fprintf(FilePort "POP \"subclass\"\n")
    138.     fprintf(FilePort "ENDFIELD\n\n")
    139.   ; enter the expand size of via
    140.     fprintf(FilePort "TEXT \"Expand size of vias (mils):\"\n\n")
    141.     fprintf(FilePort "TLOC 1 11\n")
    142.     fprintf(FilePort "ENDTEXT\n\n")
    143.    
    144.     fprintf(FilePort "FIELD expandValue_via\n\n")
    145.     fprintf(FilePort "FLOC 19 11\n\n")
    146.     fprintf(FilePort "REALFILLIN 6 6\n\n")
    147.     fprintf(FilePort "MIN 0\n\n")
    148.     fprintf(FilePort "ENDFIELD\n\n")
    149.    
    150.     fprintf(FilePort "ENDTILE\n\n")
    151.     fprintf(FilePort "ENDFORM\n")
    152.    
    153.     close(FilePort)
    154.    
    155.     createparmform = axlMiniStatusLoad(gensym() FileName 'lnCreateParmFormCB nil "NONE")
    156.   )
    157. )
    158. ; --------------------------------------------------
    159. ; 参数设置 form 回调函数
    160. ; --------------------------------------------------
    161. procedure(lnCreateParmFormCB(form)
    162.   case(form->curField
    163.     ("class"
    164.       t_activelayer = axlGetActiveLayer()
    165.     )
    166.     ("subclass"
    167.       t_activelayer = axlGetActiveLayer()
    168.     )
    169.     ("subcolor"
    170.       if(axlFormGetField(form "subcolor") then
    171.         axlVisibleLayer(axlGetActiveLayer() t)
    172.       else
    173.         axlVisibleLayer(axlGetActiveLayer() t)
    174.       )
    175.     )
    176.     ("expandValue_via"
    177.       expandValue_via= axlFormGetField(form "expandValue_via")
    178.       printf("expandValue_via is %-.2f" expandValue_via)  
    179.         
    180.     )
    181.   )
    182. )

    183. ; --------------------------------------------------
    184. ; 结束命令回调函数
    185. ; --------------------------------------------------
    186. procedure(lnDone()
    187.   let(()
    188.     axlDBTransactionCommit(ln_mark)
    189.     notdone = nil
    190.     axlCancelEnterFun()
    191.   )
    192. )

    193. ; --------------------------------------------------
    194. ; 回撤命令回调函数
    195. ; --------------------------------------------------
    196. procedure(lnOops()
    197.   let(()
    198.     axlDBTransactionOops(ln_mark)
    199.     axlCancelEnterFun()
    200.   )
    201. )

    202. ; --------------------------------------------------
    203. ; 取消命令回调函数
    204. ; --------------------------------------------------
    205. procedure(lnCancel()
    206.   let(()
    207.     axlDBTransactionCommit(ln_mark)
    208.     notdone = nil
    209.     axlCancelEnterFun()
    210.   )
    211. )
    复制代码


  • TA的每日心情
    郁闷
    2024-7-25 15:18
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    20#
     楼主| 发表于 2025-6-19 12:49 | 只看该作者
    Allegro_wang 发表于 2025-6-17 15:49
    难道是复制粘贴有问题?能否直接上传一个.il文件的附件?再出问题那就是可能是allegro补丁版本?目前使用 ...

    我发不了文件,刚重新发了一下,你再看看

    点评

    可以了!问题解决了!赞!  详情 回复 发表于 2025-6-23 10:34
  • TA的每日心情
    开心
    2025-6-23 15:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    21#
    发表于 2025-6-23 10:34 | 只看该作者
    ashnoer 发表于 2025-6-19 12:49
    我发不了文件,刚重新发了一下,你再看看

    可以了!问题解决了!赞!
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    22#
    发表于 2025-6-23 11:45 | 只看该作者
    本帖最后由 db-_- 于 2025-6-23 11:47 编辑


    我就发了一张图片,为啥3个附件的图片都出来了呢! =。=!!!!!













    a1.png (15.64 KB, 下载次数: 0)

    a1.png

    a2.png (20.63 KB, 下载次数: 0)

    a2.png

    点评

    我发不了文件和图片,只能上代码  详情 回复 发表于 2025-6-23 17:44
  • TA的每日心情
    郁闷
    2024-7-25 15:18
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    23#
     楼主| 发表于 2025-6-23 17:44 | 只看该作者
    db-_- 发表于 2025-6-23 11:45
    我就发了一张图片,为啥3个附件的图片都出来了呢! =。=!!!!!

    我发不了文件和图片,只能上代码

    点评

    代码挺好,省得下载扣分了。就是系统BUG多多。  详情 回复 发表于 2025-6-23 17:50
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    24#
    发表于 2025-6-23 17:50 | 只看该作者
    ashnoer 发表于 2025-6-23 17:44
    我发不了文件和图片,只能上代码

    代码挺好,省得下载扣分了。就是系统BUG多多。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-24 03:21 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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