在PCB行业中,客户提供的PCB尺寸较小,为方便PCB加工,并生产提高生产效率,通常小于80X80mm需拼板处理的,

拼板要求可能来自按户指定拼板,也有可能是由工厂自行拼板,但对于CAM来说就需将PCS拼成SET了,这里就给CAM带来不小工作量了,

这里讲解工厂自行拼板,如何实现自动拼板与画工艺边 的实现方法。

一.实现方式

1.获取单只外形坐标数据

2.遍历坐标数据,获取最左侧,最下侧,最右侧,最上侧 线段装入4个集合中

3.将4个集合中重复线段,细小间距,线段偏差进行过滤与校正处理

4.接着将4个集合按小大到排序,左右两边集合按Y轴排序,上下两边集合按X轴升排序,再转为点链,共4个点链

5.再通过单只尺寸,矩形左下,右下,右上,左上,4个点坐标分别对点链头尾进行判断,如果不重合,则加入到点链中,在点链中2个相邻的点,即为锣空区。

6.通过用户输入的矩形阵列X多少个,Y多少个,相应的4点链也进行拼矩阵,并获取点链与点链相邻之间的关系,间距,上下左右是否存在档板,档板宽度的信息,这里就得建立结构化数据存储它了;后面判断用得着的

7.到这一步数据将承现为一个二维矩阵形式,在单只中点链上下左右的周边信息有了,在SET中点链中上下左右的周边的信息也有了,就可以跟据这些点链的关系画工艺边了,怎么画呢,画工艺边需提前建立N种工艺边画法模型,点链的关系匹配哪种模型就按哪种模式直接画就好了。

说明:此画法是基于模型,可以达到在SET中单只旋转或镜像 单只与单只之间的点链关系也相应变化,照样可行的。但必须是矩阵,上下左右不能错位;可能会有预料不到的问题。后续扩展,锣空位按Slot槽来画,自动加内角孔,自动画锣带 熔合在一起。

二 .实现效果

PCB Genesis拼SET画工艺边 实现方法(一)的更多相关文章

  1. PCB genesis自制孔点 Font字体实现方法

    一.先看genesis原有Font字体 在PCB工程CAM加孔点字体要求时,通常我们直接用Geneis软件给我们提供了2种孔点字体canned_57与canned_67,但此字体可能不能满足各个工厂个 ...

  2. PCB genesis短槽加引导孔实现方法

    一.何为短槽 短槽通常定义:槽长小于2倍槽宽      如:槽长1.8mm,槽宽1.0mm 二.为什么要加短槽加引孔呢 短槽孔在钻孔时孔易偏斜导致槽长偏短, 当槽长宽比越小,则受力越不均匀,在钻第2个 ...

  3. PCB Genesis或Incam 右键导入TGZ 实现方法

    使用Genesis导入TGZ方式很多 的,比如有:写个脚本框选TGZ的的方式实现TGZ导入,将TGZ拖入脚本界面实现TGZ导入, 给Engineering Toolkit窗口句柄注册拖拽事件实现TGZ ...

  4. PCB Genesis脚本C#使用WPF窗体实现方法

    用C#写脚本做UI界面基本上都是用WinForm界面,如果想制作很漂亮动态的界面用WPF界面挺不错的选择, 这里介绍如何使用控制台程序调用WPF窗口 一.方法一 在控制台程序中,通过Main方法启动W ...

  5. PCB Genesis SET拼板(圆形板拼板) 实现效果(二)

    越来发现Genesis采用Surface多边形数据结构的重要性了,当撑握了多边形缩放,交集, 差集,并集等算法, 想实现PCB拼板简直轻而易举了;当然借助多边形算法可以开发出更多的PCB实用的工具出来 ...

  6. PCB 合拼遍历(全排序+旋转90度) 基本遍历方法

    分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习  时间复杂度计算错误  一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全 ...

  7. 用Delphi画圆角Panel的方法(使用CreateRoundRectRgn创造区域,SetWindowRgn显示指定区域)

    用Delphi画圆角Panel的方法: procedure TForm1.Button5Click(Sender: TObject);var fhr :Thandle;beginfhr:=Create ...

  8. 画删除线的方法,如何找替代方法,Deprecated注释

    用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择.在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告. 那么相应的替代方法应 ...

  9. 用CSS来画空心三角形的方法

    画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...

随机推荐

  1. 调试24L01经验总结

    注意的地方: 1.调试24L01的时候,信号的初始状态一定要设置,否则在设置模块的状态的时候容易出错.( CE=0; CSN=1; SCK=0; MOSI = 1; IRQ = 1;)IRQ设置成1是 ...

  2. SIGPIPE 13 和其他信号的对照表

    SIGPIPE 13 和其他信号的对照表 SIGHUP 1 在控制终端上检测到挂断或控制线程死亡 是SIGINT 2 交互注意信号 是SIGQUIT 3 交互中止信号 是SIGILL 4 检测到非法硬 ...

  3. 下载Spring4.1.x源码并用IntelliJ IDEA打开-----

    下载Spring4.1.x源码并用IntelliJ IDEA打开-------https://blog.csdn.net/boling_cavalry/article/details/79426075 ...

  4. MVC系统学习5——验证

    其实关于Mvc的验证在上一篇已经有讲过一些了,可以通过在我们定义的Model上面添加相应的System.ComponentModel.DataAnnotations空间下的验证属性.在服务器端通过Mo ...

  5. NYOJ-58最少步数,广搜思想!

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 ->   Link  <- 这个题深搜广搜都是可以的,迷宫已经给出了,就看怎么做了:一般起点终点确定用广搜 ...

  6. 怎样签发SSL证书

    最近在做怎样让网站有SSL,搞了一天,现在总结一下 首先要安装OPENSSL和 Java的 keytool 先用OPENSSL生成私钥和CSR openssl req -newkey rsa:2048 ...

  7. 关于oracle 压缩表

    这周客户的问题非常多,总是说我的数据不对.于是我对数据梳理了以后发现以前认为是重复数据的,其实并不是,而是我忽略了一个维度.那么这样一来,我们的周详单表就会有500多万的数据.一个月按照4周计算,就要 ...

  8. HDU 4035 期望dp

    这道题站在每个位置上都会有三种状态 死亡回到起点:k[i] 找到出口结束 e[i] 原地不动 p[i] k[i]+e[i]+p[i] =1; 因为只给了n-1条路把所有都连接在一起,那么我们可以自然的 ...

  9. noip模拟赛 卖书

    分析:模拟题,只是有几个地方需要注意一下:第一个人必须支付5元,找零15元可以找一张10元一张5元,也可以找3张5元. #include <cstdio> #include <cst ...

  10. 主席树初探--BZOJ2588: Spoj 10628. Count on a tree

    n<=100000的点权树,有m<=100000个询问,每次问两个点间的第k小点权,保证有解,强制在线. 主席上树啦!类似于之前的序列不带修改询问的前缀表示法,现在只要把前缀当成某点到根的 ...