|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AD设计的原理图,FPGA的管脚名要做一些改变,库里面的fpga symbol是通用的,不能改,只可以在原理图里面改。通过双击原件,改pin的话太痛苦了,上百个管脚,在edit pin的界面上不能一起copy和past,只能一个一个改。有没有什么快捷的方法一次改多个管脚?考虑用脚本,找到了个ad的读管脚名的脚本,修修改改可以用来读指定的某个原件的所有管脚,再在文本文件里面改,就可以大量的拷贝了,但是不知道怎么写回到ad里面,有高手指点一下?谢谢 O% g/ ]# g X' R- q! U
{..............................................................................}
$ z7 ~# ]7 E3 Q0 |% }* }{ Summary Demo how to fetch pins of components. }! X- H$ E4 H+ x% F3 K' t5 u
{ }+ G( L+ O) U7 n, h3 z
{ Copyright (c) 2008 by Altium Limited }
/ j3 n9 @, T! L2 u0 |& x{..............................................................................}3 }7 s" w+ ^/ D1 h
' o: ^% Y% H7 l; F1 ?8 L' z: C- Z$ ]
{..............................................................................}
+ j7 g$ O3 i% F) S2 I* {. vProcedure FetchPinsOfComponents_U1;
2 N- {8 p" Q# a! FVar
% ^. A4 a4 o* V* Q5 u CurrentSch : ISch_Sheet;
) x$ Z9 \# R) r, S$ a Iterator : ISch_Iterator;
, R3 U; r7 z* ?: X& p: A) _+ n$ i PIterator : ISch_Iterator;
9 A& X. u7 ]0 ?9 `- k1 o# C AComponent : ISch_Component;8 H! T( \1 I1 ]* v
AnIndex : Integer;
& J% Y |0 T, @2 W1 i O5 ^) ]0 t1 e d# q# E* J9 c. \
ReportList : TStringList;+ X# r/ w; E) O w% j& P$ D2 D
Pin : ISch_Pin;
3 y9 I% h9 ]3 N n# A Document : IServerDocument;3 O6 H8 x* D" Y
Begin
/ e n! B4 |/ W6 r/ B // Check if schematic server exists or not.- m$ Z/ Q/ i" P) F! f4 }4 ^8 r1 F
If SchServer = Nil Then Exit;
) O7 @; m6 Z. J6 \4 A
( `) P4 @3 V7 ~% t // Obtain the current schematic document interface.8 P: b+ O$ b, F( Y0 `# Q
CurrentSch := SchServer.GetCurrentSchDocument;8 l. v' \6 A" |# o0 ]
If CurrentSch = Nil Then Exit;
; _: h0 o' r2 X Q" S) U% G0 ]9 J( O6 P+ d6 j o- U3 S& p0 m
// Look for components only
/ [2 k `1 Y3 H2 L) }3 I" _ Iterator := CurrentSch.SchIterator_Create;
. g+ P0 ~& V6 z Iterator.AddFilter_ObjectSet(MkSet(eSchComponent));( O0 i) n5 I7 }, B/ q
3 } F: T* g/ q( J" Q
ReportList := TStringList.Create;
8 i; ^5 Y3 S2 N! b$ N Try
' q3 g- _0 m- c" l0 x, ^2 X AComponent := Iterator.FirstSchObject;
. r* @! ~# N, R: d* o While AComponent <> Nil Do
$ h4 J- f# C: }; h+ L/ N Begin! @8 P8 N* r/ i4 {' u4 r
if AComponent.Designator.Text = 'U1' Then // change to the designator number you want.....
# ?' r* J- O/ k Begin, E, L/ _) ^* C0 S0 b' K
ReportList.Add(AComponent.Designator.Name + ' ' + AComponent.Designator.Text);% A- w6 F* v6 h3 c# Z( m8 q! r K! c0 o
ReportList.Add(' Pins');8 H/ a1 w6 d/ x
4 A( N, `# N5 z- i! t. W1 b
Try9 J; W6 V/ h' K9 y( w3 a
PIterator := AComponent.SchIterator_Create;
# G" w; T! d) K$ U) r- V PIterator.AddFilter_ObjectSet(MkSet(ePin));
9 {' N/ N- I1 ]1 }1 ~, `, a) u2 q) z4 n
Pin := PIterator.FirstSchObject;
. {- L1 q$ {0 L& E While Pin <> Nil Do
+ r1 Y) [$ j" K( q Begin
/ ~' H5 j& J: |& [; b; W+ D { ReportList.Add(' Name: ' + Pin.Name + ' Designator: ' + Pin.Designator); }8 B4 i$ o% d7 A5 A. _; O) N
ReportList.Add(' Name: ' + Pin.Name + ' Designator: ' + Pin.Designator);
! {. m: l! ]0 z5 F Pin := PIterator.NextSchObject;
$ S! c. I. X- S5 S6 X( t6 F End;$ B7 K q, L' c
Finally% y" j5 y6 g8 A8 A& J
AComponent.SchIterator_Destroy(PIterator);
% E1 O% K n+ F' ` End;
7 N- W1 v2 @7 V8 k' i+ s
+ {1 G2 Q3 b! W$ L. a8 @: ^5 T3 u ReportList.Add('');3 j' V0 @, [ \6 T& j% L N
5 _3 x. d7 a3 J! |; k0 I& ^8 ] End;
* B4 g0 p! b* r8 T) T
+ d0 Y/ _: g& u AComponent := Iterator.NextSchObject;
' W+ N! N+ u; t% L- F End;7 I2 {2 B+ v& T3 A
Finally- `0 H9 |1 T6 f4 C5 O3 B4 P- N8 e
CurrentSch.SchIterator_Destroy(Iterator);0 k- @* }$ \, e4 x6 F5 k. A
End;
3 w+ m! Y+ T& \/ z9 M7 s
; ^/ G1 `2 H) n% R% g ReportList.SaveToFile('d:\PinReportU1.Txt');
^: ^+ h8 h) o% x: n$ c' s0 a ReportList.Free;& [6 s; i! R b+ O, v" [. e0 f
. E: O* R0 c5 t( x f9 I, t
// Display the report for all components found and their associated pins.
1 T1 e. q5 N f4 N+ F Document := Client.OpenDocument('Text','d:\PinReportU1.txt');7 K' i2 m! S6 U* M9 ` `
If Document <> Nil Then- |" d2 E2 W3 @/ B
Client.ShowDocument(Document);
' w. v4 {& p- Q- y! I* b8 tEnd;
' W1 s# f; t5 N6 N, j: w Q{..............................................................................}
& ~4 ^6 e" {3 P X8 H5 x; n4 Q* y
{..............................................................................}
2 d& e ~1 E6 C/ X4 F" BEnd.
) X# m$ f( V& `& o# S) b" V2 A ?$ [" p4 S" d) _! G) H( G2 V
|
|