;FPM skill by Richard L. version=0.08 fpmontreal@gmail.com
;Tree:杂项(Chinese)/简单范例
;Desc:范例如何建立一个简单的二极管封装
;Vendor:Richard L.
;Count:1
;CVG64:示意图字段(测试中)
;Datasheet:
pL=12.7 ;引脚间距
pA=7.6 pB=3.5 pH=3.5 ;长宽高
pPad=2.0 pHole=1.2 ;焊盘直径和孔径
Courtyard=1.0 ;courtyard 庭院,我测试了一下应该是器件周围的距离
pName="MY-DIODE" ;给封装取个名字
_PrepareNewSym(pName) ;文件初始化
PadN=_PadTH_Default(pPad pHole) ;建立通孔园焊盘
_CreatePin(PadN -pL/2:0 "A") ;创建两个管脚 A 和 C
_CreatePin(PadN pL/2:0 "C")
;Place层
_Layer(lPkgGeoPlaceT) ;切换到PlaceTop层
_BoundHeight(_ShapeRectangle(pL+Courtyard*2 pB+Courtyard*2 0:0 pB/2) pH)
for(asm 0 1 ;丝印和装配层
if(asm==1 _Layer(lPkgGeoAsmT) _Layer(lPkgGeoSilkT)) ;层切换
_Rectangle(pA pB) ;矩形
;画三根线 下面画三根线.
_Line(list(-pL/2+pPad/2+SilkWidth/2+SilkGap:0 -pA/2:0));list 里面,前面是起点.后面是线的终点
_Line(list(pL/2-pPad/2-SilkWidth/2-SilkGap:0 pA/2:0))
_Line(list(-pA/2+1:pB/2 -pA/2+1:-pB/2))
)
_CreateRefValue(pName) ;必须的文字层
_SaveDesign(pName) ;保存文件
_MakeDevice(pName,2) ;需要的话附带生成DEVICE文件,0=IC 1=IO 2=DISCRETE
;FPM skill by Richard L. version=0.08 fpmontreal@gmail.com
;Tree:Connector/Header
;Desc:zh150 刘西振author
;Vendor:
;Count:20
;CVG64:bitmap field, not implemented yet.
;Datasheet:
Tabs='(
(2 3)
(3 4.5)
(4 6)
(5 7.5)
(6 9)
(7 10.5)
(8 12)
(9 13.5)
(10 15)
(11 16.5)
(12 18)
(13 19.5)
(14 21)
(15 22.5)
(16 24)
(1725.5)
(1827)
(1928.5)
(2030)
)
;courtyard 庭院,我测试了一下应该是器件周围的距离
Courtyard=1.0 pH=4 Pitch=1.5
Width=4;先定义为器件的宽度
foreach(aTb Tabs
CKTS =nth(0 aTb)
A =nth(1 aTb) ;这个参数是获取 Tabs表格中的第二列的数据
sprintf(pName,"ZH150M-1X%d",CKTS)
_PrepareNewSym(pName)
PadN=_PadTH_Default(0.8 0.6)
;_PinArray(PadN Col Row PitchX/Y (P1=0:0 bRight bUp bRowFirst bPin1 bPinNum P1Offset=0 PAngle=0 TAngle=0)
_PinArray(PadN CKTS 1 Pitch 0 -(CKTS-1)*Pitch/2:0)
;bound
_Layer(lPkgGeoPlaceT)
;shape里面的第二个参数 上下宽度
_BoundHeight(_ShapeRectangle(A+Pitch+Courtyard*2 Courtyard*2+Width) pH)
;silkscreen & assembly
for(i 1 2
case(i
(1 _Layer(lPkgGeoSilkT))
(2 _Layer(lPkgGeoAsmT)))
;这个应该是画第一脚的 三角形的.
_Triangle(-(CKTS-1)*Pitch/2:-Width/2 2 90)
;这里面的第二个参数是矩形的上下宽度
_Rectangle(A+Pitch Width)
_Line(list(-(CKTS-1)*Pitch/2:Width/2 -(CKTS-1)*Pitch/2:Width/2-1) 1);这个第三个参数可以设置 线的粗细.
_Line(list((CKTS-1)*Pitch/2:Width/2 (CKTS-1)*Pitch/2:Width/2-1) 1);这个第三个参数可以设置 线的粗细.
)
;ref & val
_CreateRefValue(pName 0:-Width/2-tSilkHeight/2)
;_CrossCenter()
axlSetSymbolType("package");哈哈哈,这里一定要注意.之前的cadence 16.6 用fpm 创建的器件封装不能保存.是因为 setup ->design parameter的 design
;drawing type 的类型需要修改成为 package. 用了这个函数接口,就直接讲类型修改了. 后面就可以直接保存使用了.
_SaveDesign(pName)
_MakeDevice(pName 2) ;0-IC 1-IO 2-DISCRETE
);foreach