PCB Genesis拼SET画工艺边 实现方法(一)
在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画工艺边 实现方法(一)的更多相关文章
- PCB genesis自制孔点 Font字体实现方法
一.先看genesis原有Font字体 在PCB工程CAM加孔点字体要求时,通常我们直接用Geneis软件给我们提供了2种孔点字体canned_57与canned_67,但此字体可能不能满足各个工厂个 ...
- PCB genesis短槽加引导孔实现方法
一.何为短槽 短槽通常定义:槽长小于2倍槽宽 如:槽长1.8mm,槽宽1.0mm 二.为什么要加短槽加引孔呢 短槽孔在钻孔时孔易偏斜导致槽长偏短, 当槽长宽比越小,则受力越不均匀,在钻第2个 ...
- PCB Genesis或Incam 右键导入TGZ 实现方法
使用Genesis导入TGZ方式很多 的,比如有:写个脚本框选TGZ的的方式实现TGZ导入,将TGZ拖入脚本界面实现TGZ导入, 给Engineering Toolkit窗口句柄注册拖拽事件实现TGZ ...
- PCB Genesis脚本C#使用WPF窗体实现方法
用C#写脚本做UI界面基本上都是用WinForm界面,如果想制作很漂亮动态的界面用WPF界面挺不错的选择, 这里介绍如何使用控制台程序调用WPF窗口 一.方法一 在控制台程序中,通过Main方法启动W ...
- PCB Genesis SET拼板(圆形板拼板) 实现效果(二)
越来发现Genesis采用Surface多边形数据结构的重要性了,当撑握了多边形缩放,交集, 差集,并集等算法, 想实现PCB拼板简直轻而易举了;当然借助多边形算法可以开发出更多的PCB实用的工具出来 ...
- PCB 合拼遍历(全排序+旋转90度) 基本遍历方法
分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习 时间复杂度计算错误 一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全 ...
- 用Delphi画圆角Panel的方法(使用CreateRoundRectRgn创造区域,SetWindowRgn显示指定区域)
用Delphi画圆角Panel的方法: procedure TForm1.Button5Click(Sender: TObject);var fhr :Thandle;beginfhr:=Create ...
- 画删除线的方法,如何找替代方法,Deprecated注释
用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择.在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告. 那么相应的替代方法应 ...
- 用CSS来画空心三角形的方法
画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...
随机推荐
- Spring 和 Hibernate的整合
问题 ,spring 和 hibernate 整合 如何整合 1. Spring 使用Hibernate的的SessionFactory 2. Hibernate使用Spring提供的声明式事务
- SQL SERVER占用CPU过高排查和优化
操作系统是Windows2008R2 ,数据库是SQL2014 64位. 近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死.于是做了个监测服务器的软件实时记录CPU数据,几日观 ...
- 编程数学(A-2)-次方
百度百科:次方. 特别是一个数的负次方需要注意.
- Codeforces Round #321 (Div. 2)-B. Kefa and Company,区间最大值!
->链接在此<- B. Kefa and Company time limit per test 2 seconds memory limit per test 256 megabytes ...
- IE & table & border & border-collapse & bug
shit IE table border bug & border-collapse bug > `border-collapse: collapse;` table { width: ...
- CSU 1554 SG Value (集合类的学习)
题目大意: 2种操作 1 a:往集合中添加一个元素a 2: 询问这个集合中的元素任意组合相加所不能得到的最小数的值 这道题总是不断地去找当前所能处的最小值能否被当前的最小值加上其前部的一堆可抵达数到达 ...
- ZOJ 3329 期望DP
题目大意: 给定3个已经规定好k1,k2,k3面的3个色子,如果扔到a,b,c则重新开始从1 计数,否则不断叠加所有面的数字之和,直到超过n,输出丢的次数的数学期望 我们在此令dp[]数组记录从当前数 ...
- POJ 1741 Tree【Tree,点分治】
给一棵边带权树,问两点之间的距离小于等于K的点对有多少个. 模板题:就是不断找树的重心,然后分开了,分治,至少分成两半,就是上限为log 然后一起统计就ok了 #include<iostream ...
- Python基础之 一 字典(dict)
字典:是一种key - value的数据类型.语法:info = { key:value }特性:无序,key必须唯一(所以天生去重) 方法如下:del dict[key]:删除字典指定键len(di ...
- 1085 数字游戏 2003年NOIP全国联赛普及组
丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分 ...