找回密码
 注册
查看: 550|回复: 10
打印 上一主题 下一主题

如何计算shape的面积?

[复制链接]
  • TA的每日心情
    开心
    2021-9-16 15:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-7-4 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    最近闲着想写个计算pin/网络密度的小工具,本来以为很简单,写的时候发现没有找到计算shape的函数。用“show element”是可以show出任意shape的面积的,请问用skill该怎么实现呢?
  • TA的每日心情
    开心
    2021-9-16 15:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
     楼主| 发表于 2022-7-4 15:52 | 只看该作者
    百度到这么一个函数leComputeAreaDensity,不过试了一下,提示 undefined function
  • TA的每日心情
    慵懒
    2024-11-14 15:27
  • 签到天数: 72 天

    [LV.6]常住居民II

    3#
    发表于 2022-7-4 16:12 | 只看该作者
    转成poly,可以直接读取poly->area

    点评

    用axlPolyFromDB吗?完美,谢谢师傅  详情 回复 发表于 2022-7-4 17:14
  • TA的每日心情
    开心
    2021-9-16 15:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2022-7-4 17:14 | 只看该作者
    db-_- 发表于 2022-7-4 16:12
    转成poly,可以直接读取poly->area

    用axlPolyFromDB吗?完美,谢谢师傅
  • TA的每日心情
    开心
    2024-11-11 15:43
  • 签到天数: 34 天

    [LV.5]常住居民I

    5#
    发表于 2023-2-7 16:15 | 只看该作者
    最近闲着想写个计算pin/网络密度的小工具,本来以为很简单,写的时候发现没有找到计算shape的函数。用“show element”是可以show出任意shape的面积的,请问用skill该怎么实现呢?

    点评

    刚好写过一个,给你参考: axlCmdRegister("board_info" 'board_info) axlSetFunckey("bi" "board_info") defun( board_info () Comps=axlDBGetDesign()->components Comps_cnt=length(Comps);器件数 pi  详情 回复 发表于 2023-2-7 21:46
  • TA的每日心情
    开心
    2021-9-16 15:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
     楼主| 发表于 2023-2-7 21:46 | 只看该作者
    cailiu 发表于 2023-2-7 16:15
    最近闲着想写个计算pin/网络密度的小工具,本来以为很简单,写的时候发现没有找到计算shape的函数。用“sho ...

    刚好写过一个,给你参考:
    axlCmdRegister("board_info" 'board_info)
    axlSetFunckey("bi" "board_info")

    defun( board_info ()

    Comps=axlDBGetDesign()->components
    Comps_cnt=length(Comps);器件数

    pin_cnt=0;管脚数
    for(i 0 Comps_cnt-1
    pin_cnt=pin_cnt+length(nth(i Comps)->symbol->pins)
    )

    nets=axlDBGetDesign()->nets
    net_cnt=length(nets);网络数

    axlVisibleDesign(nil)
    axlUIWUpdate(t)
    axlVisibleLayer("Board Geometry/Outline" t)
    axlVisibleUpdate(t);显示设置

    axlClearSelSet()
    axlSetFindFilter(?enabled '("noall" "shapes") ?onButtons "shapes")
    axlSingleSelectPoint()
    Outline=axlGetSelSet()
    poly=axlPolyFromDB(car(Outline))
    area=car(poly)->area/1000000*2.54*2.54
    printf("Area of board in cm*cm is: %5f\n" area)

    pin_density=pin_cnt/area
    net_density=net_cnt/area

    printf("components cnt is: %5n\n" Comps_cnt)
    printf("Nets cnt is: %5n\n" net_cnt)
    printf("Pins cnt is: %5n\n" pin_cnt)
    printf("Pin_density is(/cm*cm): %5f\n" pin_density)
    printf("Net_density is(/cm*cm): %5f\n" net_density)

    )

    点评

    老哥说得很对,但是不想改了  详情 回复 发表于 2023-2-9 13:35
    有bug, 沒偵測使用單位, 在非英制單位, 會出現錯誤尺寸.  发表于 2023-2-8 00:15
  • TA的每日心情
    开心
    2024-11-11 15:43
  • 签到天数: 34 天

    [LV.5]常住居民I

    7#
    发表于 2023-2-8 09:05 | 只看该作者
    请问用skill该怎么实现呢?
  • TA的每日心情
    开心
    2021-9-16 15:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    8#
     楼主| 发表于 2023-2-9 13:35 | 只看该作者
    mycoal 发表于 2023-2-7 21:46
    刚好写过一个,给你参考:
    axlCmdRegister("board_info" 'board_info)
    axlSetFunckey("bi" "board_info ...

    老哥说得很对,但是不想改了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    EDA365公众号

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

    GMT+8, 2025-2-5 14:52 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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