一.先看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. Linux常用命令——链接命令

    链接命令:ln ln -s [原文件] [目标文件] 命令英文原意:link 功能描述:生成链接文件 选项:-s 创建软链接,也叫符号链接 硬链接特征: 1.拥有相同的i节点和存储block块,可以看 ...

  2. Spring Boot 与消息

    一.消息概述 在大多数应用中,可以通过消息服务中间件来提升系统的异步通信.扩展解耦和流量削峰等能力. 当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地. 消息队列主要有两种形 ...

  3. lombok无法解析log

    首先确认开发工具是否安装lombok,已安装的话打开lombok插件页,选择update, 然后重启idea.

  4. linux 系统 UDP 丢包问题分析思路

    转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...

  5. ubuntu安装nvidia驱动以及cuda教程

    最近尝试在ubuntu中安装nvidia的显卡驱动以及cuda.花了近三天时间,真的如网上所说错误百出,期间甚至重装了一次ubuntu系统,搞到怀疑人生,整个都是泪- -.最终经过百般“磨难”总算安装 ...

  6. java导出word的6种方式(转发)

    来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...

  7. Linux学习笔记(七) 查询系统

    1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...

  8. SVM简单上手示例

    转载自 百度知道 id:风_南(https://zhidao.baidu.com/usercenter?uid=e9904069236f25705e799313) 转载只为方便学习复习,侵删. 在用s ...

  9. CodeForces 800B Volatile Kite(点与直线的距离)(Java 实现)

    CodeForces 800B Volatile Kite(点与直线的距离)(Java 实现) 传送门 如果想要一个凸多边形不退化为凹多边形,那么任意的相邻的三个点必然最多形成一条直线.因此我们可以求 ...

  10. MySQL导入-导出数据库-mac版

    MySQL导入-导出数据库-mac版 导出数据库-表结构,和数据 mysqldump -u 账号 -p 数据库名 表 > 文件名.sql 例如:mysqldump -u root -p test ...