在PCB行业中,客户提供的PCB尺寸较小,为方便PCB加工,并生产提高生产效率,通常小于80X80mm需拼板处理的, 拼板要求可能来自按户指定拼板,也有可能是由工厂自行拼板,但对于CAM来说就需将PCS拼成SET了,这里就给CAM带来不小工作量了, 这里讲解工厂自行拼板,如何实现自动拼板与画工艺边 的实现方法. 一.实现方式 1.获取单只外形坐标数据 2.遍历坐标数据,获取最左侧,最下侧,最右侧,最上侧 线段装入4个集合中 3.将4个集合中重复线段,细小间距,线段偏差进行过滤与校正处理 4.接着…
一.先看genesis原有Font字体 在PCB工程CAM加孔点字体要求时,通常我们直接用Geneis软件给我们提供了2种孔点字体canned_57与canned_67,但此字体可能不能满足各个工厂个性化需求,比如:孔密度,孔间距,孔形状分布,如果有一些个性化需求时必须得自己可以编辑孔点字体才可以满足要求,可以奥宝没有提供这样的工具给我们,在这里就介绍用genesis自制Font字体实现方法 二.Font字体坐标文件制作说明 Font字符坐标文件放在genesis安装目录:C:\genesis\…
一.何为短槽 短槽通常定义:槽长小于2倍槽宽      如:槽长1.8mm,槽宽1.0mm 二.为什么要加短槽加引孔呢 短槽孔在钻孔时孔易偏斜导致槽长偏短, 当槽长宽比越小,则受力越不均匀,在钻第2个孔时,钻头两边受力不均匀再加上是顺时针旋转,会导至第2个孔往逆时针方向偏转且变短(如下图) 短槽偏位问题如何解决呢,在我们PCB行业最佳作法是在钻槽孔之前,先在槽孔两端2个小孔(如下图). PCB行业已有很多短槽加工方法了 具体方法请链接:PCB钻孔--超短坑槽的加工方法 机械钻孔中的短槽孔加工技术…
使用Genesis导入TGZ方式很多 的,比如有:写个脚本框选TGZ的的方式实现TGZ导入,将TGZ拖入脚本界面实现TGZ导入, 给Engineering Toolkit窗口句柄注册拖拽事件实现TGZ导入, 右键实现TGZ导入等,本篇介绍最后一种右键导入TGZ的方法.   一.实现效果图 1.tgz文件右键导入 2.tgz文件夹右键导入   二.借助Gateway实现InputTGZ脚本----C#实现代码 1.C#实现代码部份 using System; using System.Collec…
用C#写脚本做UI界面基本上都是用WinForm界面,如果想制作很漂亮动态的界面用WPF界面挺不错的选择, 这里介绍如何使用控制台程序调用WPF窗口 一.方法一 在控制台程序中,通过Main方法启动WPF窗口 App app = new App(); app.Run(new MainWindow()); 二.方法二 通过Form窗口启动另外一个WPF窗口 private void Form1_Load(object sender, EventArgs e) { this.Hide(); this…
越来发现Genesis采用Surface多边形数据结构的重要性了,当撑握了多边形缩放,交集, 差集,并集等算法, 想实现PCB拼板简直轻而易举了;当然借助多边形算法可以开发出更多的PCB实用的工具出来,下面将圆形板拼板实现效果展示一下. 关于圆形拼板的可参考下面另外3篇 拼板,加邮票孔,圆板切边方法 PCB Genesis拼SET画工艺边 实现方法(一) PCB Genesis加邮票孔(弧与弧)实现算法 PCB 圆形板切边算法 实现  拼圆板实现效果 1.邮票连接位参数设置 2.圆形拼板参数设置…
分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习  时间复杂度计算错误  一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全排序+旋转90度)  基本遍历方法  1.调用方法 //准备数据 List<RectSizeDemo> RectSizeList = new List<RectSizeDemo>(); RectSizeList.Add(new RectSizeDemo() { Name = "…
用Delphi画圆角Panel的方法: procedure TForm1.Button5Click(Sender: TObject);var fhr :Thandle;beginfhr:=CreateRoundRectRgn(0,0,panel1.width,panel1.height,4,4);SetWindowRgn(panel1.handle,fhr,true);end; Panel的BevelInner 及 BevelOuter 最好设成 bvNone http://blog.csdn.…
用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择.在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告. 那么相应的替代方法应该怎么看? 点进画删除线的方法,会看到.比如:直接提供替代的方法 @deprecated replaced by <code>getEncodingForIndex(int charsetIndex)</code> @deprecated Initialize the frame wi…
画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:before和:after的样式偏移一个像素,就可以实现了 Html代码为: <div id="favoriteOptionMenus" class="toolmenu">          <ul class="saveFilterWrap&quo…
在绘制化学图形的时候,很多的用户都会发现很多的图形都是三维的,这个时候就需要找一款能够绘制3D图形的化学绘图软件.ChemOffice 15.1是最新的化学绘图工具套件,总共有三个组件,其中ChemDraw 15.1 Pro和ChemOffice 15.1 Pro可以画3D图,因为这两个版本中均含有Chem 3D功能组件.下面本教程就来给大家分享一下用ChemDraw画3D图的方法? Chem 3D组件是ChemOffice的主要模块,用于分子的三维空间模型显示与构造,并可以结合分子力学(MM)…
com.twoapp.mathGame13--前拼后广--13种数学方法jiemei…
一.先看genesis原始孔符 孔符的作用:用于表示孔径的大小的一种代号, 当孔径检测时,可以按分孔图中的孔符对应的孔径尺寸对孔径检测. 在实际PCB行业通常不使用原始(图形)孔符,而使用字母孔符(如A,B,C ),主要原因是:图形孔符在人员读取,录入,转换不便 二.孔符坐标文件制作说明 孔符坐标文件放在genesis安装目录:c:\genesis\e99\all\markers下,我们先查看一下孔符文件,如下图所示, 直接是明文坐标.由于奥宝也没有提供孔符编辑工具,我们想直接修改孔符坐标不现实…
一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔,并钻进去一点(常规进去1-2mil),这样就可以将纤维毛刺去除 (没找到SLOT槽与SLOT槽的实物图.就用SLOT槽与圆孔吧,产生毛刺效果也是一样的) PCB同行业毛刺问题处理办法 钻孔孔内毛刺问题分析改善报告 二.如何判断除毛刺孔加多少个? 在PCB行业工程加除毛刺孔加多少个也没有太明确的定义,…
一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔,并钻进去一点(常规进去1-2mil),这样就可以将纤维毛刺去除 PCB同行业毛刺问题处理办法 钻孔孔内毛刺问题分析改善报告 二.如何判断除毛刺孔是加1个还是2个呢? 在PCB行业工程加除毛刺孔是加1个孔还是2个孔,没有太明确的定义,只要满足毛刺去除即可. 我们先看下面这个示例(采用此加1个除毛刺孔,…
一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔,并钻进去一点(常规进去1-2mil),这样就可以将纤维毛刺去除 PCB同行业毛刺问题处理办法 钻孔孔内毛刺问题分析改善报告 二.连孔加除毛刺孔实现原理 求解思路:1.已知小圆半径:1.5mm,大圆半径 2mm,2个点距离3mm 利用海伦公式(三边求高)求出除尘孔径半径:0.8887mm2.除尘孔半径…
曾经用node.js测试写Genesis脚本失败了,这次借助开发PCB规则引擎的机会(基于JS V8引擎与.net深度交互性), 验证一下Javascript是否可用于写Genesis脚本. 一.测试Javascript更改单位 var unit = gen.COM('get_units'); console.log('更改前单位:' +unit); if (unit == 'mm') { gen.COM('units,type=inch'); } else { gen.COM('units,t…
在PCB行业,Genesis的二次开发的编程脚本越来越丰富了啊,从一开始进入眼界的Genesis脚本语言是很少的,CSH,PERL, 再后来慢慢发展,VB,易语言,VB.NET,C#,Java,TCL,PYTHON,C++,语言真的是五花八门啊,各种各样编程语言与Genesis为伍, 2004年PCB前辈写的Genesis Python接口,真的好久远了,想想当时的我还没入PCB这行了;呵呵 有需要的可以在此基础上面改进哦.学习借鉴一下人家的封装接口思路. http://pcbren.cn/Sh…
从事PCB工程行业的都知道,启动Genesis需2个exe程序(Xmanager.exe与get.exe)需一起启动才可以打开我们熟悉的软件, 而Xmanager是图形窗口是给用户UI交互使用的,如果仅仅是后台跑脚本是否不用启动Xmanager, 因为图形界面对于Genesis脚本是多余的,那么是否可以只启动get.exe在后台运行脚本呢. 答案是:当然是可以的啦,实现起来非常简单 ,下面这里介绍实现方法. 一.C#代码实现 1.C:\genesis\e97\get\get.exe       …
一.背景: 做过CAM的人都用过Geneiss软件,由于处理资料强大,目前奥宝公司出品的Genesis占领整个PCB行业,整个行业无人不知呀, 而此软件有一个吐槽点Genesis 无滚轮缩放与TGZ拖放功,而用过其它图形编辑(CAD,3DMAX,Photoshop,UG)软件,鼠标对图形的操作 是非常的灵活的,确实没有对比就没有伤害,而奥宝这么多年来Genesis升级了N次也没有加入此功能. 正是如此,不得不自行开发此插件功能. <鼠标滚轮缩放>此作品是2014年写使用易语言写的,但有一些坑没…
一.Genesis加邮票孔(弧与弧)实现算法 1.鼠标点击位置P点(可以确认搜索区域位置,确认点击位置周边元素分区,此所讲算法未应用到P点坐标) 2.求出:P1C与P2C (线与弧最近点距离的2个点) 3.分别计算:弧1圆心到弧2圆心两点方位角与反方位角(假设置为变量PA1与PA2) 4.分别计算:弧1与弧2 圆心角,通过圆半径与弦长(连接位长度)--(假设置为变量A1,A2) 4.分别计算P1S,P1E与P2S,P2E  4个点 以P1S与P1E为例:(方位角+增量求解) 参数1:以弧1中心点…
PCB钻孔时,当钻刀>6.3mm时,超出钻孔范围,钻孔工序是没有这么大的钻刀,当这种情况,工程CAM会都采用G84命令用小孔扩孔的方式制作, 在这里介绍一种如果不用G84命令,用程序实现将大孔生成小孔钻孔达到扩孔的目的. 一.我们先了解一下G84命令扩孔 孔尺寸大小 孔密度 连一篇文章有关于孔数计算方式: https://www.cnblogs.com/pcbren/p/9379178.html 二.求解思路 1.通过孔密度,求出孔与孔中心距离 2.求出单次增量方位角 3.以大孔中心为,长度为(…
PCB钻Slot槽一般都采用G85命令钻槽孔,而采用G85命令工程CAM无法准确的知道Slot槽钻多少个孔,并不能决定钻槽孔的顺序,因为采用G85命令钻孔密度与钻槽顺序由钻机本身决定的.在这里介绍一种如果不用G85命令,如何将Slot槽生成多个钻孔. 一.我们先了解一下G85命令钻槽 钻孔顺序 孔密度 连一篇文章有关于Slot槽孔数计算方式: https://www.cnblogs.com/pcbren/p/9379178.html 二.求解思路 1.通过孔密度,求出孔与孔中心距离 2.再以Sl…
一.为什么增加尾孔呢 看一看下图在panel中增加尾孔的效果;如下图所示,主要有2点原因. 1.孔径大小测量 假设如果不增加尾孔,要检测孔径大小是否符合要求,那么QA检测会选择最后钻的孔进大小进行测量, 但钻孔路径优化后,是不知道哪个孔是最后一个孔钻孔,为了让钻孔QA清楚的知道哪个孔是尾孔,CAM制作时会将每把刀最一个孔放到统一的一个区域内排列. 2.防止漏钻刀 如果最后一把刀尾孔漏钻了,那么QA一眼就看出来漏钻刀了 说一下钻孔工序QA检测孔径要求是:用针规全部测量其尾孔,并随机测量一些板内的孔…
一.为什么 大孔中要加小孔(即卸力孔) 这其实跟钻刀的排屑有关了,当钻刀越大孔,排屑量也越大(当然这也得跟转速,下刀速的参数有关系),通常当钻刀越大,转速越慢,下刀速也越慢(因为要保证它的排屑通畅). 这里科普一下钻刀的[进刀速度],[转速],[进刀量]之间的关系是怎样的. 进刀速度.转速之间的关系对于钻头来讲,切削量越大,产生的粉尘颗粒就会更大,部分切屑尤其是铜丝,会缠绕到钻头,从而严重影响孔壁的质量.相应的,切削量越小,在钻孔时,钻头停留在孔内的时间就会越长,产生的钻污就会越多. 进刀量.转…
在PCB工程制作CAM时,经常会遇到外形拐角处直角的,而客户对内角是要求,比如最大内角要求R0.5mm或者不接受内角, 但成型方式为铣方式,又不是啤板成型,那怎么处理才可以达到要求效果呢,在这里介绍2种方法. 一.采用大小锣刀分2次锣外形 由于采用2次锣,此效率较低,目前PCB行业基本已放弃此方法了处理内角了, 要知道我们PCB行业是非常很重视效率,为了提高效率,PCB行业普遍采用第2种方法(详见方法2) 二.在外形拐角处加----内角孔 方槽为直角时,用直径2.0mm锣刀,内角无法锣出直角效果…
我们采用Genesis增加点阵字时,用Genesis增加Canned Text即可,但奥宝中文不支持,且字符种类是有限的呀 不过没关系,没有自己造呀.在这里我分享一种增加点阵字的实现方法 一.通过代码增加点阵字效果 二.实现代码 private void button1_Click(object sender, EventArgs e) { add Add = new add(); Font font = ); Add.text_dot(font, "pcbren共赢加油"); } /…
一.Genesis原点坐标转换关系: 1.读取Genesis坐标转换:   UI界面坐标 = 文件坐标 - 偏移值 2.写入Genesis坐标转换:   文件坐标 = UI界面坐标 + 偏移值 3.为了说清楚转换关系,这里以读取Genesis坐标图示 4.不再糊涂,彻底说明白,这里再次配一张图示. 二.Genesis原点相关指令: 1.读取原点坐标: /// <summary> /// 获取Step原点坐标 /// </summary> /// <param name=&qu…
在Genesis增加汉字自带是不支持增加汉字的,如果需增加汉字需用到CAD 汉字库才可增加汉字,这里介绍一种脱离汉字库实现 Genesis增加轮廓字(如要变为实体,填空Surface可变为实体字) 一.增加效果图 二.选中其中一个字放大查各节点细节 三.字坐标树结构 四.代码实现 增加轮廓字 private void button31_Click(object sender, EventArgs e) { Font font = new Font(new FontFamily("宋体"…
使用incam可以很轻松的增加2维码,这里通过另外一种方式玩转二维码的加法, 使用谷歌zxing.dll类库实现,将文字信息转为bitmap点阵后,在Genesis绘制点即可. 一.incam增加二维码效果 二.通过代码增加方PAD实现效果: 三.代码实现: Genesis增加二维码代码 private void addQR() { CodeHelper qr = new CodeHelper(); Dictionary<EncodeHintType, object> hint = new D…