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