- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
cadence有没有聚拢器件的工具或sill
请问什么叫聚拢器件啊?
删了,重新Quick Place
跟AD软件似的能把同一模块的器件聚拢在一块
小编都发话了,这是最快的,在Quick Place里面还有很多选择... 当然还有其他的,,,
有skill可以
你这有这个SKILL吗
小编能不能给截个屏看看怎么操作的啊
但是不会用啊
这样的态度和悟性,还是放弃allegro算了。 后面的路还长啊!
有这种skill 么?
抱歉,发不了图片。
有个办法就是在原理图中将零件编号复制到一个文本文件,然后在Allegro执行Move命令的Find面板下方将Name改为lst,然后选择这个文本文件,那么相关零件就会选中。
对于PDF的原理图这种方法非常好用,极力推荐!
;************************************************************************************
;Symbol Gather beta1.0
;
;功能概述:类似Protel交互布局时器件的聚拢。
;
;使用说明: 首先加载此il文件,在pcbenv文件目录下的allegro.ilinit最后一行添加
; load("symbol_gather.il") ,axlCmdRegister("gs" 'gather_sym)中的"gs"
; 为启动命令关键字,可以自定义此关键字。
;axlTriggerSet('Select 'myxprobe)
;axlTriggerPrint()
axlCmdRegister("gs" , 'gather_sym)
defun( gather_sym ()
let( (path p)
Path = "./_gathersym.form"
p = outfile( Path "w")
fprintf(p "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(p "FORM\n")
fprintf(p "FIXED\n")
fprintf(p "PORT 30 11\n")
fprintf(p "HEADER \"Gather Symbol\"\n")
fprintf(p "TILE\n")
fprintf(p "TEXT \"Active Symbols:\"\n")
fprintf(p "FLOC 3 1\n")
fprintf(p "ENDTEXT\n")
fprintf(p "FIELD ref_sym\n")
fprintf(p "FLOC 2 3\n")
fprintf(p "LIST \"\" 10 10\n")
fprintf(p "OPTIONS multiselect\n")
fprintf(p "ENDFIELD\n")
fprintf(p "FIELD gather\n")
fprintf(p "FLOC 15 4\n")
fprintf(p "MENUBUTTON \"Gather\" 12 5\n")
fprintf(p "ENDFIELD\n")
fprintf(p "FIELD hilight\n")
fprintf(p "FLOC 15 10\n")
fprintf(p "MENUBUTTON \"Hilight\" 12 5\n")
fprintf(p "ENDFIELD\n")
fprintf(p "TEXT\n")
fprintf(p "FLOC 25 21\n")
fprintf(p "INFO msg 20\n")
fprintf(p "FSIZE 20 2\n")
fprintf(p "ENDTEXT\n")
fprintf(p "ENDTILE\n")
fprintf(p "ENDFORM\n")
close(p)
axlFormCreate('gather "_gathersym" '("msglines" 1) 'gatherCB t nil)
axlUIWPerm(gather t)
axlFormDisplay(gather)
deleteFile(Path)
);let
);
defun( gatherCB (gather)
targ = nil
case(gather->curField
("gather"
output()
axlTriggerClear('xprobe 'myxprobe)
);#1
("hilight"
axlTriggerSet('xprobe 'myxprobe)
hilight()
);#2
);case
case(gather->doneState
(3 axlTriggerClear('xprobe 'myxprobe))
);case
reflist = nil
);defun
defun( hilight ()
targ = nil
axlFormListDeleteAll(gather "ref_sym" )
axlShell("hilight")
);
defun(myxprobe (items)
if(car(items) == 'highlight
then
targ = cons(caadr(items)->refdes targ)
);if
axlFormListDeleteAll(gather "ref_sym" )
when(member(nil targ) targ = remove(nil targ))
targ = unique(targ)
axlFormSetField( gather "ref_sym" targ)
reflist = targ
);defun
defun(output ()
axlShell("done")
axlClearSelSet()
axlSetFindFilter(?enabled list( "noall" "symbols") ?onButtons list( "noall" "symbols"))
sym = makeTable("Symbol" nil)
k = 0
LenX = 0
LenY = 0
foreach(db reflist
k = k + 1 ;
sym[k] = gensym()
tmp = car(axlSelectByName("REFDES" db))
sym[k]->db = tmp
foreach(db0 tmp->children
;layer = cadr(parseString(db0->layer "/"))
;if(layer == "PLACE_BOUND_TOP" || layer == "PLACE_BOUND_BOTTOM"
if(rexMatchp("[A-Z]+._BOUND_." db0->layer)
then
box = db0->bBox
);if
);foreach
sym[k]->lenH = xCoord(cadr(box)) - xCoord(car(box));x长度
sym[k]->lenV = yCoord(cadr(box)) - yCoord(car(box));y长度
sym[k]->Xo = xCoord(car(box));box左下角x
sym[k]->Yo = yCoord(car(box));box左下角y
path = list( 0 : 0
sym[k]->lenH : 0
sym[k]->lenH : sym[k]->lenV
0 : sym[k]->lenV
0 : 0
);path list
outline = axlPathStart(path)
sym[k]->otl = outline
LenX = LenX + sym[k]->lenH ;总长度
LenY = LenY + sym[k]->lenV ;总高度
);foreach
PlenX1 = 0
PlenX2 = 0
PlenX3 = 0
Rsec = 0
Rtht = 0
PlenY = 0
PlenY1 = 0
for(i 1 k
if(PlenX1 <= LenX / 3
then
PlenX1 = PlenX1 + sym->lenH
org = -(PlenX1 - sym[1]->lenH) : PlenY
else if(PlenX2 <= LenX / 3
then
when(PlenX2 == 0 Rsec = sym->lenH)
PlenX2 = PlenX2 + sym->lenH
PlenY = sym->lenV +50
org = -(PlenX2 - Rsec ) : PlenY
when(PlenY1 == 0 PlenY1 = PlenY)
else
when(PlenX3 == 0 Rtht = sym->lenH)
PlenX3 = PlenX3 + sym->lenH
PlenY = PlenY1 + sym->lenV +50
org = -(PlenX3 - Rtht ) : PlenY
);else if
);if
axlAddSimpleMoveDynamics(org outline "path" ?ref_point 0:0)
sym->Xt = - car(org)
sym->Yt = - cadr(org)
);for
if(pic = axlEnterPoint()
then
move(pic)
);if
);defun
defun( move (pick)
for(i 1 k
relaxy = car(pick) - sym->Xo + sym->Xt : cadr(pick) - sym->Yo + sym->Yt
axlTransformObject(sym->db, ?move relaxy)
);
axlClearDynamics()
axlFormListDeleteAll(gather "ref_sym" )
);defun
Cadence Allegro 培训套装,视频教学,直观易学
上一篇:在allegro里面如何实现下面几个快捷操作功能与初始化
下一篇:Allegro 有没有自动载入 Design Parameter 的方法?