Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 297|回复: 8

[求助] 有偿写skill,目前本人有需要,求大神出手代写下

[复制链接]
发表于 2018-6-8 15:53:41 | 显示全部楼层 |阅读模式
最近学了下skill,发现还是太难了。网上也早不到学习的教程,只是些基本的语句。
本来想写一个skill:
目的:
        通过skill来对不上件的器件,不上件的器件有附加属性pop=na,在新建层 BOARD GEOMETRY/ NA_X_TOP or BOARD GEOMETRY/ NA_X_TOP上画叉×,叉的大小(以添加line的方式画叉×)与 PACKAGE GEOMETRY/ASSEMBLY_BOTTOM四个边缘等大。

类似于如下图。



我本来的想法是,先自身在allegro中高亮pop=na的器件,然后用函数通过获取高亮器件的 PACKAGE GEOMETRY ASSEMBLY_BOTTOM  line的四个角的坐标,然后通过坐标来add line到对应BOARD GEOMETRY/ NA_X_TOP or BOARD GEOMETRY/ NA_X_TOP层。

问题:
1, PACKAGE GEOMETRY ASSEMBLY_BOTTOM  上的line怎么获得坐标呢?如果是shape形式,那获取就容易多了。
2,PACKAGE GEOMETRY ASSEMBLY_BOTTOM 上如何line组合的不是方方正正的矩形,是圆形又要怎样考虑呢?

但是思来想去,感觉无从下手啊!

求大神出手,顺便我也学习下!

有偿!有偿!有偿!

可私聊!


 楼主| 发表于 2018-6-8 15:55:47 | 显示全部楼层
补个图,怎么会不显示呢
121312312.png
发表于 2018-6-11 14:48:39 | 显示全部楼层
本帖最后由 leilei4908 于 2018-6-11 15:13 编辑

给你提供个思路,X用射线的形式,从零件中心射出四条线(比如分别间隔60和120度),根据零件旋转角度,将四条射线也旋转相同角度,获取与Assembly的交点
举个例子,零件旋转了45度,第一条射线角度30+45=75度,第二条射线角度30+45+120=195度
第三条射线角度30+45+120+60=255度,第四条射线角度30+45+120+60+120-360=15度
一条直线已知斜率,另一条直线已知两个端点,求交点
若另一条是曲线,也就是objType是arc(直线是line),可以用直线和圆的交点公式求得
端点可以根据
foreach(mb symbol->groupMembers
   when(mb->objType == "path" && index(mb->layer "PACKAGE GEOMETRY/ASSEMBLY")
      segs = mb->segments
      foreach(seg segs
         startEnd = seg->startEnd
         xy1 = car(startEnd)
         xy2 = cadr(startEnd)
      )
   )
)
获取
Assembly很有可能是除了常见的矩形和圆形以外的图形,这种再用四个端点就不能很好的处理了


发表于 2018-6-11 14:56:25 | 显示全部楼层
skill可以参考
%cdsroot%\doc\algroskill\algroskill.pdf
%cdsroot%\doc\sklangref\sklangref.pdf
%cdsroot%\doc\sklanguser\sklanguser.pdf
这三份
发表于 2018-7-5 20:22:59 | 显示全部楼层
“用函数通过获取高亮器件的 PACKAGE GEOMETRY ASSEMBLY_BOTTOM  line的四个角的坐标,然后通过坐标来add line到对应BOARD GEOMETRY/ NA_X_TOP or BOARD GEOMETRY/ NA_X_TOP层”这个我会。因为我之前写的一个skill用到了这个。 不过前面那个“高亮pop=na的器件” 这个我没明白具体是什么意思。
 楼主| 发表于 2018-7-6 11:11:29 | 显示全部楼层
chengcheng 发表于 2018-7-5 20:22
“用函数通过获取高亮器件的 PACKAGE GEOMETRY ASSEMBLY_BOTTOM  line的四个角的坐标,然后通过坐标来add l ...

高亮pop=na 的器件 就是高亮不上件的器件,这个可以手动设置一下在运行skill好了。你会么,能帮忙给我写一个么
 楼主| 发表于 2018-7-6 11:12:31 | 显示全部楼层
leilei4908 发表于 2018-6-11 14:48
给你提供个思路,X用射线的形式,从零件中心射出四条线(比如分别间隔60和120度),根据零件旋转角度,将四 ...

好复杂啊,我现在还是初学skill,完全编不来啊
发表于 2018-7-10 09:54:49 | 显示全部楼层
秋田家的小厨 发表于 2018-7-6 11:11
高亮pop=na 的器件 就是高亮不上件的器件,这个可以手动设置一下在运行skill好了。你会么,能帮忙给我写 ...

我要先研究下你说的这个pop = NA 是啥。你可以给个板子我,板上的零件大部分都删掉。只剩几颗不上件的和几颗要上件的。以免泄露了你的东西。
 楼主| 发表于 2018-7-10 16:29:44 | 显示全部楼层

就是添加属性为pop=na来表示不上件,也可以是别的属性来代表。
大概就是如下图这样子,你随便一个板子都可以的。

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

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号|网站地图

GMT+8, 2018-8-19 13:33 , Processed in 0.369489 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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