一.先看genesis原始孔符

孔符的作用:用于表示孔径的大小的一种代号, 当孔径检测时,可以按分孔图中的孔符对应的孔径尺寸对孔径检测.

在实际PCB行业通常不使用原始(图形)孔符,而使用字母孔符(如A,B,C ),主要原因是:图形孔符在人员读取,录入,转换不便

二.孔符坐标文件制作说明

孔符坐标文件放在genesis安装目录:c:\genesis\e99\all\markers下,我们先查看一下孔符文件,如下图所示, 直接是明文坐标。由于奥宝也没有提供孔符编辑工具,我们想直接修改孔符坐标不现实,这里我们可以借助genesis图界面,将孔符坐标读入genesis,然对孔符进行编辑,接着再将编辑好的孔符输出来即可.

孔符制作3步曲.

1.孔符读入==>2.编辑孔符==>3.孔符输出

三.编辑孔符说明

1.孔符中心是坐标零点为中心,对准钻孔中心,而不是以孔符元素中心对准钻孔中心

2.孔符宽度与高度比值尽量控制一致, 不然生成孔符图会造成拉伸变形效果

四.C#代码实现

孔符读入

     //###孔符读入genesis
//1.新建一个全新的job与step
//2.读取孔符markers目录文件,每一种孔符会标对应genesis一个层(如:t00,t01,t02)
//3.接着借助genesis对孔符进行编辑操作了
string HoleSmbolsInputDirPath = @"C:\Users\Administrator\Desktop\markers\markers\";//孔符读取markers目录
var HoleSmbolsFilePath = Directory.GetFiles(HoleSmbolsInputDirPath);
foreach (var item in HoleSmbolsFilePath)
{
var HoleSymbolsLayerName = Path.GetFileNameWithoutExtension(item).ToLower();
g.COM($"create_layer,layer={HoleSymbolsLayerName}");
g.COM($"affected_layer,name={HoleSymbolsLayerName},mode=single,affected=yes");
foreach (var itemLine in File.ReadAllLines(item))
{
var arrList = itemLine.Trim().Split(' ').Where(tt => !string.IsNullOrEmpty(tt)).ToList();
if (arrList.Count() >= )
{
g.COM($"add_line,xs={arrList[0]},ys={arrList[1]},xe={arrList[2]},ye={arrList[3]},symbol=r100");
}
}
g.COM($"affected_layer,name={HoleSymbolsLayerName},mode=single,affected=no");
}

孔符输出

            //###孔符输出
//1.准备编辑好的孔符job
//2.依次遍历genesis所有层,每一层(如t01,t02)输出为单一的孔符坐标文件
//输出需注意两点
//一.输出孔符的genesis单位要读入孔符单位要一致(我这边用mm习惯了,这边公制单位)
//二.输出的坐标要转为整数,孔符坐标中含有小数genesis识别不了)
var HoleSmbolsOutputDirPath = @"C:\Users\Administrator\Desktop\markers\";//孔符输出markers目录
LayerNameList = g.getLayerNameList(g.STEP, g.JOB);
foreach (var LayerName in LayerNameList)
{
StringBuilder StrLine = new StringBuilder();
foreach (var line in g.getFEATURES(LayerName).Llist)
{
StrLine.AppendLine($"{ Math.Round(line.ps.x, 0)} {Math.Round(line.ps.y, 0)} {Math.Round(line.pe.x, 0)} {Math.Round(line.pe.y, 0)} 0");
}
File.WriteAllText($"{HoleSmbolsOutputDirPath}{LayerName}", StrLine.ToString());
}

五.实现效果

孔符读入

孔符输出

PCB genesis孔符制作实现方法的更多相关文章

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

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

  2. PCB Genesis 外形加内角孔实现方法

    在PCB工程制作CAM时,经常会遇到外形拐角处直角的,而客户对内角是要求,比如最大内角要求R0.5mm或者不接受内角, 但成型方式为铣方式,又不是啤板成型,那怎么处理才可以达到要求效果呢,在这里介绍2 ...

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

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

  4. cadence 机械孔的制作

    在平时画PCB的时候,会用到安装孔,好多人就是找个过孔,在原理图中连接GND,这样使用也可以,下面介绍一种正经机械孔的制作方法(自己摸索的),制作一个孔径为3mm的安装孔. 1 打开pad desig ...

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

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

  6. skyline TerraBuilder 制作MPT方法与技巧(2)

    制作MPT的方法可以看这里<skyline TerraBuilder 制作MPT方法与技巧(1)>http://www.cnblogs.com/cannel/p/3622447.html ...

  7. skyline TerraBuilder 制作MPT方法与技巧(1)

    MPT是skyline独有的三维地形数据格式,可简单理解为 影像图+高程=三维地形(三维底图),以下介绍用skyline TerraBuilder(以下简称TB)制作MPT的方法与技巧 用TB制作MP ...

  8. 多周期MACD趋势共振制作的方法

    我浏览了创幻论坛.理想论坛,来到MACD股市技术分析俱乐部,真正找到自己的乐土. 做人要厚道!指标之王MACD既然被先辈们创造了出来,就应由我辈发扬光大!自吹自擂者.吝啬者都应自觉退出论坛既然来到这里 ...

  9. BMFont中文字体图集制作的方法~(for unity ngui)

    BMFont中文字体图集制作的方法~(for unity ngui) 好吧~似乎这个问题困扰了很多人,游戏开始中文化是个不错的事儿啊,这里我就做下说明,如何制作中文字体图集~ 这里的字库图集的制作更多 ...

随机推荐

  1. Coin Toss(uva 10328,动态规划递推,限制条件,至少转至多,高精度)

    有n张牌,求出至少有k张牌连续是正面的排列的种数.(1=<k<=n<=100) Toss is an important part of any event. When everyt ...

  2. 「 RQNOJ PID204 」 特种部队

    解题思路 看了一下题解,感觉题解貌似有些错误.所以把我的见解放在这里,希望路过的大佬可以帮忙解释一下 QAQ 就是这里的更新 $dp[i-1][i]$ 和 $dp[i][i-1]$ 的时候,之前博主说 ...

  3. python面向对象的特点,类定义等,私有属性、公有属性、成员属性

    引子:类的对象在内存中的表示def dog(name,dog_type): def bark(d): print(d,'wang wang wang ...') data = { 'name':nam ...

  4. python3支持excel读写

    1.安装setuptools-17.0.tar.gz cmd 进入命令行 cd C:\Users\vivi\Desktop\pythonforexcel\setuptools-17.0\setupto ...

  5. STM32 实现 4*4 矩阵键盘扫描(HAL库、标准库 都适用)

    本文实现的代码是基于STM32HAL库的基础上的,不过标准库也可以用,只是调用的库函数不同,逻辑跟配置是一样的,按我这里的逻辑来配置即可. 1.键盘原理图: 原理举例:先把 F0-F7 内部拉高,这样 ...

  6. (远程调试)-idea

    远程调试 1.开启远程调试的端口 tomcat示例: catalina.bat jpda start

  7. java json数据转List对象的集合-----阿里巴巴插件---及原生json---JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】

    List<RunfastFullLess> list=(List<RunfastFullLess>)JSONArray.parseObject(activity.getFull ...

  8. java虚拟机(三)-- 虚拟机类加载机制

    1.类加载的时机:类从被加载到虚拟机内存中开始,到卸载出内存为止.包含以下几个阶段: 1.加载 2.验证 3.准备 4.解析 5.初始化 6.使用 7.卸载 2.类加载器的种类 1.启动类加载器:这个 ...

  9. 《Spring in action》之高级装配

    1.Spring 通过配置profile bean.激活profile来设置对应环境. 配置profile bean: 可通过@Profile("dev")注解进行配置.也可以通过 ...

  10. [Vue @Component] Pass Vue Render Functions as Props for Powerful Patterns

    Render functions open up a world of customization and control by using pure JavaScript rather than V ...