skill shape操作笔记

skill shape操作笔记

  • 创建shape
    • 创建简单shape(没有void)
    • 创建带Void的shape
  • Shape API
    • axlDBCreateOpenShape
    • 闭合"open"状态shape
    • 获取'open"状态的shape
    • 创建圆形void
    • 创建任意多边形void
    • 创建close的shape
    • axlDBCreateRectangle
    • axlShapeAutoVoid
    • 改变shape类型
    • 删除shape的void
    • 更新动态shape
    • 创建动态shape的void优先级
    • axlGeoPointInShape
    • 查询和更新动态``Shape``
    • 获取指定层的``Shape``
    • 判断是否允许VOID
    • 判断Shape是否填充

创建shape

创建简单shape(没有void)

创建流程:

  • 创建shape边界路径(axlPath)
  • 基于path创建shape(axlDBCreateShape)

创建带Void的shape

创建流程:

  • 使用axlDBCreateOpenShape创建"Open State"的shape
  • 使用axlDBCreateVoid和axlDBCreateVoidCircle创建void
  • 使用axlDBCreateVoidCircle完成shape
mypath = axlPathStart( list(1000:1250))
mypath = axlPathLine( mypath, 0.0, 2000:1250)
mypath = axlPathArcCenter(mypath, 0.0, 2000:3250, nil, 2000:2250)mypath = axlPathLine( mypath, 0.0, 1500:3250)mypath = axlPathLine( mypath, 0.0, 1000:1250)
myfill1 = make_axlFill( ?angle 45.0, 	?origin 10:20, 	?width 50, 	?spacing 80)
myfill2 = make_axlFill( ?angle 135.0, 	?origin 10:20,	?width 5, 	?spacing 100)
myfill = list( myfill1 myfill2)
myshape = axlDBCreateOpenShape( mypath, myfill,"etch/top", "sclkl"
)
if( myshape == axlDBActiveShape()
println( "myshape is the active shape"))
axlDBCreateVoidCircle( myshape, list(1600:1700 300))
myvoidpath = axlPathStart( list(1600:2300))
myvoidpath = axlPathLine( myvoidpath, 0.0, 2400:2100)
myvoidpath = axlPathLine( myvoidpath, 0.0, 2600:2700)
myvoidpath = axlPathLine( myvoidpath, 0.0, 2100:3000)
myvoidpath = axlPathLine( myvoidpath, 0.0, 1600:2300)
axlDBCreateVoid(myshape, myvoidpath)
axlDBCreateCloseShape( myshape)

Shape API

axlDBCreateOpenShape

创建"open state"的shape,可以在创建shape上创建void.

axlDBCreateOpenShape(o_polygon/r_path			;多边形边界/闭合路径id[l_r_fill]					;填充参数;t:		创建solid填充的shape;nil:	创建未填充的shape;客制化填充格式:;(defstruct axlFill ;(r_fill) - shape crosshatch data;	angle ;angle of the parallel lines;	origin ;a point anywhere on any xhatch line;	width ;width in user units;	spacing) ;spacing in user units[t_layer]					;层[t_netName]					;网络名称[o_parent]					;
)
⇒o_shape/nil

实例

; 创建闭合曲线
path = axlPathStart( list( 0:0 400:000 600:400 400:600 0:0))
; 创建shape
shp = axlDBCreateOpenShape(path);defaults to a solid filled shape
; unless layer allows unfilled only
; This is optional unless you are adding a shape to etch
; If you do axlDBCreateShape it automatically closes it for you
; 结束shape
axlDBCreateCloseShape(car(shp))
p1 = axlPolyFromDB(inElem)
;; add it as a unfilled shape on BOARD GEOMETRY/OUTLINE
res = axlDBCreateShape( car(p1) nil "BOARD GEOMETRY/OUTLINE")

闭合"open"状态shape

功能如下:

  • 闭合open状态shape
  • 应用填充格式
  • 执行drc
axlDBCreateCloseShape(
o_shape
)

获取’open"状态的shape

axlDBActiveShape(
) ⇒
o_shape/nil

如果存在,返回shape id;否则返回nil

创建圆形void

axlDBCreateVoidCircle(o_shape				;open状态shapel_location			;void位置参数(X:Y R)[f_width]
) ⇒
o_polygon/nil

创建任意多边形void

axlDBCreateVoid(o_shaper_path
) ⇒
o_polygon/nil

创建close的shape

axlDBCreateShape(o_polygon/r_path[l_r_fill][t_layer][t_netName][o_parent]
) ⇒
l_result/nil

axlDBCreateRectangle

; 创建矩形shape
axlDBCreateRectangle(l_bBox[g_fill][t_layer][t_netname][o_parent]
) ⇒
l_result/nil

实例

axlDBCreateRectangle(list( 100:100 200:200 ))
⇒(dbid:435623 nil)
(axlDBCreateRectangle '(200:200 400:300) t)
(axlDBCreateRectangle (axlEnterBox) t "ETCH/TOP" 45.0 "net_1")

axlShapeAutoVoid

axlShapeAutoVoid(o_shapeId[s_options/ls_options]
)
==> lo_shapeIds/nil

改变shape类型

axlShapeChangeDynamicType(o_shapeIdg_dynamicg_msgs
) -> o_dynShapeId/l_staticShapeId/nil

删除shape的void

axlShapeAutoVoid(o_shapeId/o_voidId/lo_voidid
) -> t/nil

更新动态shape

axlShapeDynamicUpdate(o_shapeDbid/nilg_force
) -> x_ood/nil

创建动态shape的void优先级

axlShapeRaisePriority(o_shapeId
) -> x_priority/nil

axlGeoPointInShape

; 判断指定点是否在shape内
axlGeoPointInShape(l_pointo_dbid[t/nil]
) ⇒
t/nil

查询和更新动态Shape

axlDBDynamicShapes(g_value
)

获取指定层的Shape

axlDBGetShapes(t_layer
)
Example 1
axlDBGetShapes(nil)
Returns all shapes on the design.Example 2
axlDBGetShapes("BOUNDARY")
Returns all shapes on the BOUNDARY layer.Example 3
axlDBGetShapes("ETCH/GND")
Returns all shapes on ETCH GNDExample 4
axlDBGetShapes("ROUTE KEEPOUT")
Returns all shapes on ROUTE KEEPOUT

判断是否允许VOID

axlOK2Void(t_layer
) ⇒
t/nil

判断Shape是否填充

axlIsitFill(t_layer
)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部