TA的每日心情 | 开心 2022-11-1 15:51 |
|---|
签到天数: 62 天 [LV.6]常住居民II
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AD设计的原理图,FPGA的管脚名要做一些改变,库里面的fpga symbol是通用的,不能改,只可以在原理图里面改。通过双击原件,改pin的话太痛苦了,上百个管脚,在edit pin的界面上不能一起copy和past,只能一个一个改。有没有什么快捷的方法一次改多个管脚?考虑用脚本,找到了个ad的读管脚名的脚本,修修改改可以用来读指定的某个原件的所有管脚,再在文本文件里面改,就可以大量的拷贝了,但是不知道怎么写回到ad里面,有高手指点一下?谢谢0 B& B# ]1 V; b7 {; S, e( k( s# T
{..............................................................................}0 U5 H# T2 w; V$ V& w
{ Summary Demo how to fetch pins of components. }/ t7 S/ a; e8 J7 X H0 I# i) |
{ }
5 [2 s% W% v [9 N, w$ w; ^{ Copyright (c) 2008 by altium Limited }
) D x9 j7 K" s{..............................................................................}
9 j3 U+ O( t, [! a' }
; a3 h) D4 i8 `# O* }4 U{..............................................................................}
3 A4 K6 z, V+ z; y ]! U5 g; BProcedure FetchPinsOfComponents_U1;2 j& d: S9 C0 M+ u: O
Var
$ L% }; c( Q/ n- \# m# E. b CurrentSch : ISch_Sheet;: f" R4 o& m9 E; I
Iterator : ISch_Iterator;) M e: q/ \9 J0 ~) G* W- I
PIterator : ISch_Iterator;
( a5 }& @/ `: H! E AComponent : ISch_Component;/ L7 s, W- k6 V
AnIndex : Integer;# h- a0 b2 E; @9 b
! s5 ?, ?4 x3 j8 v* U' i ReportList : TStringList;
" g/ Z$ Z9 c6 w& a- A. T" r Pin : ISch_Pin;) d" z5 D1 T2 ?7 `
Document : IServerDocument;( l8 U Y9 \/ S0 I8 A* m
Begin
* g9 Q5 l4 y+ r9 E // Check if schematic server exists or not.
$ v0 T+ x9 { N3 i$ e; q If SchServer = Nil Then Exit;8 V) H4 B3 p( M8 D% |& k, ~- R# E
9 p3 g" Q7 R0 c/ T1 e$ L8 i0 s // Obtain the current schematic document inteRFace., J9 c2 m# E1 B" ?7 Y# b ^% O
CurrentSch := SchServer.GetCurrentSchDocument;
. Y B+ Y: l7 \# ]/ H7 _" M& v If CurrentSch = Nil Then Exit;' _8 J8 |4 M: r- _2 a( ?
4 z6 ` L! G* V' H; a5 R // Look for components only
$ |% n. I. ?3 B4 C3 S Iterator := CurrentSch.SchIterator_Create;' d- U. h. m" @* l' k
Iterator.AddFilter_ObjectSet(MkSet(eSchComponent));
; H) F& {. |- ]0 L3 Q- I/ f4 ^$ T- X i& Y0 o6 i. {0 S
ReportList := TStringList.Create;
4 S* r+ Z7 h# _6 d9 i6 M0 n Try0 @0 ~6 N$ x; G( q( \; h( G. ^
AComponent := Iterator.FirstSchObject;
8 ^5 v2 O* P0 J: N4 T) U While AComponent <> Nil Do- H \' Y; w4 D
Begin& L6 N. D( s G' l7 E) `. M6 O7 N1 K
if AComponent.Designator.Text = 'U1' Then // change to the designator number you want...... m% L, L$ m/ z# ` p# h5 ^& H/ D
Begin
$ |8 U9 x. c/ [0 ? ReportList.Add(AComponent.Designator.Name + ' ' + AComponent.Designator.Text);4 r* ]# Z5 P8 v# C/ J
ReportList.Add(' Pins');
8 z7 `% [( E" r
# @. i+ j8 O! b' U, k Try
8 }6 w- v6 g5 }% I PIterator := AComponent.SchIterator_Create;
7 b; B; _- T l; L: U& \ PIterator.AddFilter_ObjectSet(MkSet(ePin));
. a/ O2 e+ y8 H0 z) I2 V6 ?3 @! \+ A4 [! c. n! ^7 k5 z" t! k r
Pin := PIterator.FirstSchObject;
% X( W7 c5 K' t) ] While Pin <> Nil Do/ ^. Z: x4 I8 r+ C' P
Begin' y, n. n9 j; @- t/ f' S: v' d
{ ReportList.Add(' Name: ' + Pin.Name + ' Designator: ' + Pin.Designator); }, @" z" n, I! J
ReportList.Add(' Name: ' + Pin.Name + ' Designator: ' + Pin.Designator);% X! Y& z6 N; f
Pin := PIterator.NextSchObject;, e+ j. N# f3 e) i" j% z* D$ y: `
End;- Q# x- X! Y( @+ a" H- J
Finally
( u) @8 T* Y, Q* U AComponent.SchIterator_Destroy(PIterator);: Q/ c$ v. }$ |4 F1 M
End;5 }; [2 F+ n# j' k; y0 x4 @
+ x0 f) d+ @3 U4 _
ReportList.Add('');7 z0 R6 `& Q# { [
2 v5 }$ y' q) B
End;# e* r& Q: m5 m8 ^4 B
3 n2 S- F$ c- c# m4 F AComponent := Iterator.NextSchObject;6 k- ]7 D1 \/ m6 ^
End;% P- b3 c% i+ L% D2 f5 F) {
Finally
' N c3 l. f& Y$ W% H& w3 T6 N! R; T CurrentSch.SchIterator_Destroy(Iterator);' [' E1 [# V4 g
End;6 R3 ?1 {: n# T$ T k% r0 `
. ?6 e4 [4 p" ^) F: \% y9 [0 x ReportList.SaveToFile('d:\PinReportU1.Txt');
+ F' F9 j# |1 m) a: b* c% I ReportList.Free;
6 O3 }- b% y! P4 r, b* i/ h) T: Q+ s( M+ ~+ a. d( l) }! J; [
// Display the report for all components found and their associated pins., [' j& u) l. B) n1 p3 |& b, I9 ~
Document := Client.OpenDocument('Text','d:\PinReportU1.txt');, l6 N8 t! L/ C3 ]2 ~, T) |
If Document <> Nil Then, D5 [& Y3 O5 u
Client.ShowDocument(Document);8 d. R5 b% V7 M
End;
9 a& X/ E& M" H& r' v) _: T2 `; z{..............................................................................}
/ N) C6 \7 u6 g9 n5 g4 e9 Y9 u
6 d5 S7 g2 Q M9 [4 c: P{..............................................................................}( D$ ~! w+ [, y+ h0 r! n4 p9 @
End.
- p# _% Y/ C2 Q! {' t( D6 S3 F; B
) u X3 Y6 t0 L |
|