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

求助关于金手指自动加SHAPE的SKILL

[复制链接]
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2015-9-21 09:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本帖最后由 wuyuhe 于 2015-9-21 09:46 编辑

    已经放好了PAD,画好了OUTLINE,现在想要让它根据这些自动跑出来PLACE_BOULD_TOP,要求PIN上端到SHAPE上端距离为2.5MM,从PIN左端到SHAPE左端也是距离2.5MM,但是SHAPE下端是沿着OUTLINE的,如图所示:

    现在我想的是如果直接在FIND里选择了PIN,刚可以按要求跑出左右,上端距离2.5MM的,但是这下端沿着OUTLINE的我就不知道怎么弄了,如果选了PIN和OUTLINE的话,那左右和上端的2.5我又不知道怎么选择了。
    大家帮忙想想怎么弄啊

    金手指.jpg (62.4 KB, 下载次数: 0)

    金手指.jpg

    该用户从未签到

    2#
    发表于 2015-9-21 09:55 | 只看该作者
    1.首先你要先判斷出左邊pin的位置,並依照規則設定shape的左下角位置
    2.在判斷金手指最右邊pin的位置,並依照規則設定shape的右上角位置
    3.依照兩個位置來建一個shape

    点评

    能帮忙看一下下面的代码,为什么SHAPE出不来啊? axlCmdRegister("ts" 'add_via_noprobe_top) procedure( coordinate() axlClearSelSet() axlVisibleDesign(nil) (axlSetFindFilter ?enabled  详情 回复 发表于 2015-9-23 10:12
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2015-9-23 10:12 | 只看该作者
    XYX365 发表于 2015-9-21 09:55
    1.首先你要先判斷出左邊pin的位置,並依照規則設定shape的左下角位置
    2.在判斷金手指最右邊pin的位置,並依 ...

    能帮忙看一下下面的代码,为什么SHAPE出不来啊?
    axlCmdRegister("ts" 'add_via_noprobe_top)
    procedure( coordinate()
        axlClearSelSet()
        axlVisibleDesign(nil)
        (axlSetFindFilter ?enabled
         list("noall" "lines") ?onButtons
         list("noall" "lines")
         )
        axlVisibleLayer("board geometry/assembly_detail" t)
        axlVisibleUpdate(t)
        axlUIWUpdate(nil)
        axlAddSelectAll()
        assemblydetail=axlGetSelSet()
        assemblydetaildbid=nth(0 assemblydetail)
        assemblydetaillist=assemblydetaildbid->segments
        assemblydetailbbox=assemblydetaildbid->bBox
        myXY1=nth(0 assemblydetailbbox)
        myXY2=nth(1 assemblydetailbbox)
        detailY1=nthelem(2 myXY1)
        detailY2=nthelem(2 myXY2)
        assemblylinex=list()
      foreach(assemblydetail assemblydetaillist
            assemblyline=assemblydetail->startEnd
            assemblyline0=nth(0 nth(0 assemblyline))
            assemblyline1=nth(0 nth(1 assemblyline))
            
            if(assemblyline0==assemblyline1
              assemblylinex=cons(assemblyline0 assemblylinex)
              );endif
    );endforeach
    assemblylinex=reverse(assemblylinex)
              detailX1   = nthelem(1 assemblylinex)
              detailX2   = nthelem(4 assemblylinex)
              detailX3   = nthelem(3 assemblylinex)
              detailX4   = nthelem(2 assemblylinex)
             
    axlVisibleUpdate(t)
    axlVisibleDesign(nil)
    axlVisibleLayer("IN/TOP" t)
    axlVisibleUpdate(t)
    axlUIWUpdate(nil)
              myExtents = axlExtentDB()
              myXY3  = nthelem(1 myExtents)
              myXY4  = nthelem(2 myExtents)
              pinX1   = nthelem(1 myXY3)
             ; myY1   = nthelem(2 myXY1)
              pinX2   = nthelem(1 myXY4)
              pinY2   = nthelem(2 myXY4)
    )
    ;;;=========================================================================================
    ;=========================================================================
    procedure( add_via_noprobe_top()
    prog(()
        coordinate()
        myPath1=nil   
              myPath1 = axlPathStart((list detailX1:detailY1))
              myPath1 = axlPathLine(myPath1 0  detailX2:detailY1)
              myPath1 = axlPathLine(myPath1 0  detailX2pinY2+0.635))
              myPath1 = axlPathLine(myPath1 0  (detailX3+0.762)pinY2+0.635))
              myPath1 = axlPathLine(myPath1 0  (detailX3+0.762)detailY2+0.762))
              myPath1 = axlPathLine(myPath1 0  (detailX2-0.762):(detailY2+0.762))
              myPath1 = axlPathLine(myPath1 0  (detailX2-0.762):(pinY2+0.635))
              myPath1 = axlPathLine(myPath1 0  detailX1:(pinY2+0.635))
              myPath1 = axlPathLine(myPath1 0  detailX1:detailY1)
    axlDBCreateShape(myPath1 t "VIA KEEPOUT/TOP")         
    axlDBCreateShape(myPath1 t "MANUFACTURING/NO_PROBE_TOP")         
    ))

    点评

    你可以在這一行(myPath1=nil) 下面加入這一行printf("detailX1=%L, detailY1=%L\n" detailX1 detailY1) 再重新執行, 並告訴我detailX1 和 detailY1 輸出直是多少?  详情 回复 发表于 2015-9-23 10:26

    该用户从未签到

    5#
    发表于 2015-9-23 10:26 | 只看该作者
    wuyuhe 发表于 2015-9-23 10:12
    能帮忙看一下下面的代码,为什么SHAPE出不来啊?
    axlCmdRegister("ts" 'add_via_noprobe_top)
    procedur ...

    你可以在這一行(myPath1=nil) 下面加入這一行printf("detailX1=%L, detailY1=%L\n" detailX1 detailY1)



    再重新執行, 並告訴我detailX1 和 detailY1 輸出直是多少?

    点评

    Skill > detailY1 -2.25 Skill > detailY2 4.25 Skill > detailX1 -1.04 Skill > detailX2 35.323 Skill > detailX3 22.155 Skill > detailX4 19.755 Skill > pinX1 -0.225 Skill > pinX2 34.515 Sk  详情 回复 发表于 2015-9-23 10:33
    detailX1=-1.04, detailY1=-2.25  详情 回复 发表于 2015-9-23 10:32
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    6#
     楼主| 发表于 2015-9-23 10:32 | 只看该作者
    XYX365 发表于 2015-9-23 10:26
    你可以在這一行(myPath1=nil) 下面加入這一行printf("detailX1=%L, detailY1=%L\n" detailX1 detailY1)
    ...

    detailX1=-1.04, detailY1=-2.25
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2015-9-23 10:33 | 只看该作者
    XYX365 发表于 2015-9-23 10:26
    你可以在這一行(myPath1=nil) 下面加入這一行printf("detailX1=%L, detailY1=%L\n" detailX1 detailY1)
    ...

    Skill > detailY1
    -2.25
    Skill > detailY2
    4.25
    Skill > detailX1
    -1.04
    Skill > detailX2
    35.323
    Skill > detailX3
    22.155
    Skill > detailX4
    19.755
    Skill > pinX1
    -0.225
    Skill > pinX2
    34.515
    Skill > pinY2
    1.75

    点评

    依照你給的數值,轉為Line如下圖,這樣的圖示不能轉為shape [attachimg]102646[/attachimg]  详情 回复 发表于 2015-9-23 10:44
    你是不是有顯示錯誤訊息 E- (SPMHDB-187): SHAPE boundary may not cross itself.  详情 回复 发表于 2015-9-23 10:38

    该用户从未签到

    8#
    发表于 2015-9-23 10:38 | 只看该作者
    wuyuhe 发表于 2015-9-23 10:33
    Skill > detailY1
    -2.25
    Skill > detailY2

    你是不是有顯示錯誤訊息
    E- (SPMHDB-187): SHAPE boundary may not cross itself.

    该用户从未签到

    9#
    发表于 2015-9-23 10:44 | 只看该作者
    wuyuhe 发表于 2015-9-23 10:33
    Skill > detailY1
    -2.25
    Skill > detailY2

    依照你給的數值,轉為Line如下圖,這樣的圖示不能轉為shape

    点评

    嗯,我的等级看不到附件 我的目标是想出来这样的SHAPE。  详情 回复 发表于 2015-9-23 10:50
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    10#
     楼主| 发表于 2015-9-23 10:47 | 只看该作者
    嗯,我的等级看不到附件
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    11#
     楼主| 发表于 2015-9-23 10:50 | 只看该作者
    XYX365 发表于 2015-9-23 10:44
    依照你給的數值,轉為Line如下圖,這樣的圖示不能轉為shape

    嗯,我的等级看不到附件

    我的目标是想出来这样的SHAPE。

    金手指.jpg (43.18 KB, 下载次数: 0)

    金手指.jpg

    点评

    找到問題,如下代碼代码  详情 回复 发表于 2015-9-23 11:16
    看不到圖片,那可以到我的相冊裡面看嗎? 正常你要轉成下圖,才能轉為shape(ts_line1.jpg) [attachimg]102649[/attachimg]  详情 回复 发表于 2015-9-23 10:57

    该用户从未签到

    12#
    发表于 2015-9-23 10:57 | 只看该作者
    wuyuhe 发表于 2015-9-23 10:50
    嗯,我的等级看不到附件

    我的目标是想出来这样的SHAPE。

    看不到圖片,那可以到我的相冊裡面看嗎?
    正常你要轉成下圖,才能轉為shape(ts_line1.jpg)

    该用户从未签到

    13#
    发表于 2015-9-23 11:16 | 只看该作者
    wuyuhe 发表于 2015-9-23 10:50
    嗯,我的等级看不到附件

    我的目标是想出来这样的SHAPE。

    找到問題,如下代碼
    1. myPath1 = axlPathStart((list detailX1:detailY1))
    2.           myPath1 = axlPathLine(myPath1 0  detailX2:detailY1)
    3.           myPath1 = axlPathLine(myPath1 0  detailX2:(pinY2+0.635))
    4.           myPath1 = axlPathLine(myPath1 0  (detailX3+0.762):(pinY2+0.635))
    5.           myPath1 = axlPathLine(myPath1 0  (detailX3+0.762):(detailY2+0.762))
    6.           myPath1 = axlPathLine(myPath1 0  (detailX4-0.762):(detailY2+0.762)) ;此線段的x值錯誤
    7.           myPath1 = axlPathLine(myPath1 0  (detailX4-0.762):(pinY2+0.635)) ;此線段的x值錯誤
    8.           myPath1 = axlPathLine(myPath1 0  detailX1:(pinY2+0.635))
    9.           myPath1 = axlPathLine(myPath1 0  detailX1:detailY1)
    复制代码




    点评

    改好了就可以了,真是太感谢你了!  详情 回复 发表于 2015-9-23 11:20
  • TA的每日心情
    难过
    2022-1-12 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    14#
     楼主| 发表于 2015-9-23 11:20 | 只看该作者
    XYX365 发表于 2015-9-23 11:16
    找到問題,如下代碼

    改好了就可以了,真是太感谢你了!
  • TA的每日心情
    慵懒
    2025-6-5 15:43
  • 签到天数: 615 天

    [LV.9]以坛为家II

    15#
    发表于 2020-11-11 11:09 | 只看该作者
    金手指铜皮禁止区域的SKILL
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-6 13:43 , Processed in 0.109375 second(s), 37 queries , Gzip On.

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

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

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