EDA365电子论坛网

标题: 十天学会Skill之第七天 [打印本页]

作者: deargds    时间: 2023-8-23 19:20
标题: 十天学会Skill之第七天
本帖最后由 deargds 于 2023-8-23 19:20 编辑

十天学会skill之第七天
By deargds
https://www.eda365.com
学习目的:了解axlDBCreate*函数,学会创建常用设计对象

一,创建图形设计对象
图形设计对象主要包括Line和Shape,在学习绘制Line和Shape图形之前,需要先了解一下Path结构,因为设计中的Line和Shape都是由path构成,
Path是由一个或多个线段和弧线段首尾相接而成的图形结构,如下图所示:

我们可以通过以下代码创建Path
  1. ;开始创建path
  2. path = axlPathStart( list(0:0) 15.0);定义path起点,Path线宽默认为15.0
  3. axlPathLine( path 15.0 400:0 );绘制直线段到下一个坐标位置
  4. axlPathArcCenter( path 15.0 450:-50 t 400:-50 );绘制弧线段到下一个坐标位置
  5. axlPathLine( path 15.0 450:-200 );绘制直线段到下一个坐标位置
  6. ;Path创建结束
复制代码

对应到图形中的代码示意如下图:



1.创建Line
现在有了上一步创建的Path,我们就可以在指定图层中创建Line,代码如下:
  1. axlDBCreatePath( path "ETCH/TOP" 'line);在指定图层中将Path绘制出来,如果需要绘制Cline,可以将参数'line改为nil或者定义为网络名
  2. axlFlushDisplay();刷新显示
复制代码

提示:如果创建直线段和圆,可以直接使用axlDBCreateLineaxlDBCreateCircle函数,不需要创建Path


2.创建Shape
        创建Shape有两种基本的方式:
        1>首先创建一个闭合的Path,然后使用axlDBCreateShape在指定图层创建Shape,示例代码如下:
  1. ;开始创建闭合path
  2. path = axlPathStart( list(0:0) );定义path起点
  3. axlPathLine( path 0.0 200:300 );绘制直线段到下一个坐标位置
  4. axlPathLine( path 0.0 400:0 );绘制直线段到下一个坐标位置
  5. axlPathLine( path 0.0 0:0 );绘制直线段到起点,闭合
  6. ;闭合Path创建结束

  7. axlDBCreateShape(path t "ETCH/TOP");在指定图层中将Path绘制出来
  8. axlFlushDisplay();刷新显示
复制代码
        
        2>根据Poly来创建Shape,Poly可以通过axlPolyFrom*系列函数来进行获取,以下代码演示如何将创建的Line转化为Shape:        
  1. path = axlPathStart( list(0:0) 15.0);定义path起点,Path线宽默认为15.0
  2. axlPathLine( path 15.0 400:0 );绘制直线段到下一个坐标位置
  3. axlPathArcCenter( path 15.0 450:-50 t 400:-50 );绘制弧线段到下一个坐标位置
  4. axlPathLine( path 15.0 450:-200 );绘制直线段到下一个坐标位置

  5. dbLine = caar(axlDBCreatePath( path "ETCH/TOP" 'line));创建Line,并获取dbid
  6. dbPoly = car(axlPolyFromDB(dbLine ?endCapType "ROUND"));获取line的poly
  7. axlDBCreateShape(dbPoly t "ETCH/TOP" nil);根据poly绘制Shape
  8. axlDeleteObject(dbLine);删除Line
  9. axlFlushDisplay();刷新显示
复制代码
        
        提示:如果需要创建带有Void的Shape,可以使用axlDBCreateOpenShapeaxlDBCreateCloseShape函数配合处理。

二,创建其它设计对象

        1.创建Text
  1. orientText = make_axlTextOrientation(?textBlock "2" ?rotation 0.0 ?mirrored nil ?justify "center");定义TEXT结构
  2. axlDBCreateText( "EDA365" 0:0 orientText "BOARD GEOMETRY/ASSEMBLY_DETAIL" nil);创建TEXT
复制代码

        2.创建Via        
  1. axlDBCreateVia( "VIA10_22" 0:0 "GND" t 0.0 nil)
复制代码

总结:关于创建Shape部分,可以进一步了解Poly的相应操作,例如缩放,布尔操作等,在帮助文档中有相应的axlPoly*函数说明。


作者: w_w    时间: 2023-8-24 08:12
终于等到第七天,大佬
继续学习!
作者: awesome    时间: 2023-8-24 09:08
Skill用好了,也可以很好的提高工作效率
作者: 恋空skyloving    时间: 2023-8-24 10:04
等到第七天了,真好,感谢楼主!!!学习学习~
作者: wang7940q    时间: 2023-8-24 11:44
66666
作者: zc333    时间: 2023-8-24 17:16
继续深造。。。。。。。。。。。。。。
作者: antoni2011    时间: 2023-8-24 21:27
历害。。。学习了。
作者: zwzlove    时间: 2023-9-27 09:29
6666666666
作者: Flower98    时间: 2023-11-21 11:13
中文丝印是不是用这种方法添加的?
作者: gogogo冲冲冲    时间: 2024-9-22 22:37
哇啊                  !!!!!!等了10年,人都老了

作者: gogogo冲冲冲    时间: 2024-9-23 18:45
怎么那个弧度是在外面而不是里面呢
作者: gogogo冲冲冲    时间: 2024-9-23 18:47
gogogo冲冲冲 发表于 2024-09-23 18:45:20
怎么那个弧度是在外面而不是里面呢


哦知道了,有个弧形中心是在里面,


作者: cedard    时间: 2025-1-9 09:58
感谢楼主,确实是好东西
作者: tuzhiquan    时间: 2025-1-9 14:32
可以试一下让GPT帮你写,会不会快些

作者: 式试1813    时间: 2025-4-17 17:05
200 字节以内
不支持自定义 Discuz! 代码
作者: 式试1813    时间: 2025-4-22 11:40
6666666666666




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2