找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

已解决。字体设置skill,英制单位正常,公制单位出错

[复制链接]

45

主题

821

帖子

2831

积分

四级会员(40)

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

积分
2831
跳转到指定楼层
1#
发表于 2017-11-21 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yihafewu 于 2017-11-22 08:25 编辑

这是我在本论坛里搜罗的一个字体设置skill,我习惯mm为单位,不知道是否要改skill的内容?
axlCmdRegister("quick_textset" 'quicktext)
defun( quicktext ()
let( (curdsnunit)
                  curdsnunit = axlGetParam("paramDesign")->units
                   case(curdsnunit
                ("mils"  du = 1)
                    ("millimeters" du = 0.0254 )
                        ;(u can add other units)
                      )
old_visList = axlVisibleGet()
setTextSize()
axlVisibleSet(old_visList)
))
defun( setTextSize ()
      let(()
          ;1,GET 字体
          Text_need = '("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16")
          foreach(text_block Text_need
                    p = axlGetParam(strcat("paramTextBlock:" text_block))
                    block_pl = atoi(text_block) ;change string to num   (1.0/du)
                    p->width = (20 + 5*block_pl)*(1.0/du)
                     p->height = (25 + 5*block_pl)*(1.0/du)
                     p->lineSpace = 25*(1.0/du)
                    p->photoWidth = 6*(1.0/du)
                    p->charSpace = 5*(1.0/du)
                    axlSetParam(p)        
                    )
          ;set the textblock size
          axlVisibleDesign(nil)
          axlVisibleLayer("REF DES/SILKSCREEN_TOP" t)
          axlVisibleLayer("REF DES/SILKSCREEN_BOTTOM" t)
          ;if u need other text ,please add below:
          ;axlVisibleLayer("REF DES/assembly_TOP" t)
          axlClearSelSet()
          axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list "text"))
          allrefs = axlGetSelSet(axlAddSelectAll())
          foreach(i allrefs   
                  axlDBChangeText(i nil 2)
                  )
          ;change the resdes
          axlVisibleDesign(nil)
          axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
          axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" t)
          axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" t)
          axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_BOTTOM" t)
          axlClearSelSet()
          axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list "text"))
          alloth_text = axlGetSelSet(axlAddSelectAll())
          foreach(i alloth_text
          axlDBChangeText(i nil 1))
          ;change all other text
          ))

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

45

主题

821

帖子

2831

积分

四级会员(40)

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

积分
2831
2#
 楼主| 发表于 2017-11-22 08:26 | 只看该作者
找到原因,只需将1.0/du改为du/1.0即可。

29

主题

2646

帖子

2805

积分

四级会员(40)

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

积分
2805
3#
发表于 2017-11-22 09:40 | 只看该作者
咋使用   上个例子

29

主题

2646

帖子

2805

积分

四级会员(40)

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

积分
2805
4#
发表于 2017-11-22 09:43 | 只看该作者
axlCmdRegister("quick_textset" 'quicktext)
defun( quicktext ()
let( (curdsnunit)
                  curdsnunit = axlGetParam("paramDesign")->units
                   case(curdsnunit
                ("mils"  du = 1)
                    ("millimeters" du = 0.0254 )
                        ;(u can add other units)
                      )
old_visList = axlVisibleGet()
setTextSize()
axlVisibleSet(old_visList)
))
defun( setTextSize ()
      let(()
          ;1,GET 字体
          Text_need = '("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16")
          foreach(text_block Text_need
                    p = axlGetParam(strcat("paramTextBlock:" text_block))
                    block_pl = atoi(text_block) ;change string to num   (du/1.0)
                    p->width = (20 + 5*block_pl)*(du/1.0)
                     p->height = (25 + 5*block_pl)*(du/1.0)
                     p->lineSpace = 25*(du/1.0)
                    p->photoWidth = 6*(du/1.0)
                    p->charSpace = 5*(du/1.0)
                    axlSetParam(p)        
                    )
          ;set the textblock size
          axlVisibleDesign(nil)
          axlVisibleLayer("REF DES/SILKSCREEN_TOP" t)
          axlVisibleLayer("REF DES/SILKSCREEN_BOTTOM" t)
          ;if u need other text ,please add below:
          ;axlVisibleLayer("REF DES/assembly_TOP" t)
          axlClearSelSet()
          axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list "text"))
          allrefs = axlGetSelSet(axlAddSelectAll())
          foreach(i allrefs   
                  axlDBChangeText(i nil 2)
                  )
          ;change the resdes
          axlVisibleDesign(nil)
          axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
          axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" t)
          axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" t)
          axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_BOTTOM" t)
          axlClearSelSet()
          axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list "text"))
          alloth_text = axlGetSelSet(axlAddSelectAll())
          foreach(i alloth_text
          axlDBChangeText(i nil 1))
          ;change all other text
          ))

29

主题

2646

帖子

2805

积分

四级会员(40)

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

积分
2805
5#
发表于 2017-11-22 09:44 | 只看该作者
替换完成了  还是不行啊

点评

我是通过EDA365Skill的plugin,加载本skill文件,使用的。图中是我自定义的一个名字。 如果没有装EDA365Skill,可以把本skill文件拷贝到pcbenv文件夹下,然后再pcbenv文件夹下的allegro.ilinit文件里添加一句: lo  详情 回复 发表于 2017-11-22 16:11
你试试  详情 回复 发表于 2017-11-22 13:20

45

主题

821

帖子

2831

积分

四级会员(40)

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

积分
2831
6#
 楼主| 发表于 2017-11-22 13:20 | 只看该作者
bingshuihuo 发表于 2017-11-22 09:44
替换完成了  还是不行啊

你试试

本帖子中包含更多资源

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

x

45

主题

821

帖子

2831

积分

四级会员(40)

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

积分
2831
7#
 楼主| 发表于 2017-11-22 16:11 | 只看该作者
bingshuihuo 发表于 2017-11-22 09:44
替换完成了  还是不行啊

我是通过EDA365Skill的plugin,加载本skill文件,使用的。图中是我自定义的一个名字。
如果没有装EDA365Skill,可以把本skill文件拷贝到pcbenv文件夹下,然后再pcbenv文件夹下的allegro.ilinit文件里添加一句:
load("quick_textset.il")
在ALLEGRO命令行里执行skill load("allegro.ilinit") 所有加载的skill即刻生效,当然也可以重新打开ALLEGRO。
然后再ALLEGRO命令行里执行quick_textset即可。

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-25 18:07 , Processed in 0.064986 second(s), 38 queries , Gzip On.

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

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

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