Rev 9966 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9966 | Rev 13585 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | !if $wims_read_parm!=slib_header |
1 | !if $wims_read_parm!=slib_header |
2 | !goto proc |
2 | !goto proc |
3 | !endif |
3 | !endif |
4 | 4 | ||
5 | slib_author=Gang, XIAO |
5 | slib_author=Gang, XIAO |
6 | 6 | ||
7 | slib_example=5/br2out,,,acsrc,diode,cap,res |
7 | slib_example=5/br2out,,,acsrc,diode,cap,res |
Line 11... | Line 11... | ||
11 | :proc |
11 | :proc |
12 | !distribute items $wims_read_parm into \ |
12 | !distribute items $wims_read_parm into \ |
13 | slib_type,slib_dotwidth,slib_color,slib_textsize |
13 | slib_type,slib_dotwidth,slib_color,slib_textsize |
14 | slib_c=!char 1 of $slib_type |
14 | slib_c=!char 1 of $slib_type |
15 | !if $slib_c isin 123456789 |
15 | !if $slib_c isin 123456789 |
16 | slib_prefix=data/circuits |
16 | slib_prefix=data/circuits |
17 | !else |
17 | !else |
18 | slib_prefix= |
18 | slib_prefix= |
19 | !endif |
19 | !endif |
20 | slib_out= |
20 | slib_out= |
21 | !default slib_x0=0 |
21 | !default slib_x0=0 |
22 | !default slib_y0=0 |
22 | !default slib_y0=0 |
23 | !default slib_dotwidth=6 |
23 | !default slib_dotwidth=6 |
24 | !default slib_color=black |
24 | !default slib_color=black |
25 | !default slib_textsize=medium |
25 | !default slib_textsize=medium |
26 | slib_comp=!item 5 to -1 of $wims_read_parm |
26 | slib_comp=!item 5 to -1 of $wims_read_parm |
27 | !if / notin $slib_type |
27 | !if / notin $slib_type |
28 | !exit |
28 | !exit |
29 | !endif |
29 | !endif |
30 | slib_rec=$slib_prefix/$slib_type.data |
30 | slib_rec=$slib_prefix/$slib_type.data |
31 | slib_t=!recordcnt $slib_rec |
31 | slib_t=!recordcnt $slib_rec |
32 | !if $slib_t<2 |
32 | !if $slib_t<2 |
33 | !exit |
33 | !exit |
34 | !endif |
34 | !endif |
35 | slib_xyr=!record 2 of $slib_rec |
35 | slib_xyr=!record 2 of $slib_rec |
36 | slib_n1=!item 3 of $slib_xyr |
36 | slib_n1=!item 3 of $slib_xyr |
37 | slib_n2=!itemcnt $slib_comp |
37 | slib_n2=!itemcnt $slib_comp |
38 | slib_n=$[min($slib_n1,$slib_n2)] |
38 | slib_n=$[min($slib_n1,$slib_n2)] |
Line 44... | Line 44... | ||
44 | 44 | ||
45 | !read data/circuits/compdata |
45 | !read data/circuits/compdata |
46 | 46 | ||
47 | slib_paired=-1 |
47 | slib_paired=-1 |
48 | !for slib_i=1 to $slib_n |
48 | !for slib_i=1 to $slib_n |
49 | slib_l=!item $slib_i of $slib_comp |
49 | slib_l=!item $slib_i of $slib_comp |
50 | slib_name=!word 1 of $slib_l |
50 | slib_name=!word 1 of $slib_l |
51 | !if $slib_name!= |
51 | !if $slib_name!= |
52 | slib_text=!word 2 to -1 of $slib_l |
52 | slib_text=!word 2 to -1 of $slib_l |
53 | slib_text=!translate internal @ to $ $ in $slib_text |
53 | slib_text=!translate internal @ to $ $ in $slib_text |
54 | slib_tlen=!charcnt $slib_text |
54 | slib_tlen=!charcnt $slib_text |
55 | !if " notin $slib_text |
55 | !if " notin $slib_text |
56 | slib_text="$slib_text" |
56 | slib_text="$slib_text" |
57 | !endif |
57 | !endif |
58 | slib_ct=!line $slib_i of $slib_cdata |
58 | slib_ct=!line $slib_i of $slib_cdata |
59 | !if $slib_name=color |
59 | !if $slib_name=color |
60 | !default slib_text=grey |
60 | !default slib_text=grey |
61 | !endif |
61 | !endif |
62 | !distribute item $slib_ct into \ |
62 | !distribute item $slib_ct into \ |
63 |
|
63 | slib_x,slib_y,slib_xt,slib_yt,slib_orient,slib_e1,slib_e2 |
64 | !if R isin $slib_name |
64 | !if R isin $slib_name |
65 | slib_t=-1 |
65 | slib_t=-1 |
66 | !else |
66 | !else |
67 | slib_t=1 |
67 | slib_t=1 |
68 | !endif |
68 | !endif |
69 | slib_name=!text delete R in $slib_name |
69 | slib_name=!text delete R in $slib_name |
70 | slib_cmd=$slib_name |
70 | slib_cmd=$slib_name |
71 | !if $slib_orient=1 and $slib_name notwordof $comp_norotate |
71 | !if $slib_orient=1 and $slib_name notwordof $comp_norotate |
72 | slib_matrix=0,-($slib_t),$slib_t,0 |
72 | slib_matrix=0,-($slib_t),$slib_t,0 |
73 | !else |
73 | !else |
74 | slib_matrix=$slib_t,0,0,$slib_t |
74 | slib_matrix=$slib_t,0,0,$slib_t |
75 | !endif |
75 | !endif |
76 | slib_extender= |
76 | slib_extender= |
77 | slib_ee=!nonempty items $slib_e1,$slib_e2 |
77 | slib_ee=!nonempty items $slib_e1,$slib_e2 |
78 | !if $slib_ee!= \ |
78 | !if $slib_ee!= \ |
79 | ($(comp_$slib_cmd)!= or $slib_cmd=wire) and \ |
79 | ($(comp_$slib_cmd)!= or $slib_cmd=wire) and \ |
80 | $slib_cmd notwordof none num |
80 | $slib_cmd notwordof none num |
81 | !if $slib_orient=1 |
81 | !if $slib_orient=1 |
82 | slib_extender=$\ |
82 | slib_extender=$\ |
83 | affine 0,-1,1,0,$slib_x,$slib_y |
83 | affine 0,-1,1,0,$slib_x,$slib_y |
84 | !else |
84 | !else |
85 | slib_extender=$\ |
85 | slib_extender=$\ |
86 | affine 1,0,0,1,$slib_x,$slib_y |
86 | affine 1,0,0,1,$slib_x,$slib_y |
87 | !endif |
87 | !endif |
88 | !for slib_e in $slib_ee |
88 | !for slib_e in $slib_ee |
89 | !if $slib_e<-1 |
89 | !if $slib_e<-1 |
90 | slib_extender=$slib_extender\ |
90 | slib_extender=$slib_extender\ |
91 | disk $slib_e,0,$slib_dotwidth,_color_\ |
91 | disk $slib_e,0,$slib_dotwidth,_color_\ |
92 | line $slib_e,0,-1,0,_color_ |
92 | line $slib_e,0,-1,0,_color_ |
93 | !endif |
93 | !endif |
94 | !if $slib_e>1 |
94 | !if $slib_e>1 |
95 | slib_extender=$slib_extender\ |
95 | slib_extender=$slib_extender\ |
96 | disk $slib_e,0,$slib_dotwidth,_color_\ |
96 | disk $slib_e,0,$slib_dotwidth,_color_\ |
97 | line $slib_e,0,1,0,_color_ |
97 | line $slib_e,0,1,0,_color_ |
- | 98 | !endif |
|
- | 99 | !next slib_e |
|
98 | !endif |
100 | !endif |
99 | !next slib_e |
- | |
100 | !endif |
- | |
101 | !if $slib_i isitemof $slib_pairs |
101 | !if $slib_i isitemof $slib_pairs |
102 | !if $slib_orient=0 |
102 | !if $slib_orient=0 |
103 | slib_mat2=1,0,0,1 |
103 | slib_mat2=1,0,0,1 |
104 | !else |
104 | !else |
105 | slib_mat2=0,1,-1,0 |
105 | slib_mat2=0,1,-1,0 |
106 | !endif |
106 | !endif |
107 | !if $slib_name=wire |
107 | !if $slib_name=wire |
108 | slib_paired=$[$slib_i+1] |
108 | slib_paired=$[$slib_i+1] |
109 | slib_out=$slib_out\ |
109 | slib_out=$slib_out\ |
110 | affine $slib_mat2,$slib_x,$slib_y\ |
110 | affine $slib_mat2,$slib_x,$slib_y\ |
111 | parallel -1,0,0.5,0,3.5,0,2,_color_$slib_extender |
111 | parallel -1,0,0.5,0,3.5,0,2,_color_$slib_extender |
112 | !goto loopend |
112 | !goto loopend |
113 | !else |
113 | !else |
114 | slib_out=$slib_out\ |
114 | slib_out=$slib_out\ |
115 | affine $slib_mat2,$slib_x,$slib_y\ |
115 | affine $slib_mat2,$slib_x,$slib_y\ |
116 | line 1,0,2,0,_color_ |
116 | line 1,0,2,0,_color_ |
117 | !endif |
117 | !endif |
118 | !endif |
- | |
119 | !if $slib_i=$slib_paired |
- | |
120 | !if $slib_orient=0 |
- | |
121 | slib_x=$[$slib_x-1.5] |
- | |
122 | slib_xt=$[$slib_xt-1.5] |
- | |
123 | !else |
- | |
124 | slib_y=$[$slib_y+1.5] |
- | |
125 | slib_yt=$[$slib_yt+1.5] |
- | |
126 | !endif |
118 | !endif |
- | 119 | !if $slib_i=$slib_paired |
|
- | 120 | !if $slib_orient=0 |
|
- | 121 | slib_x=$[$slib_x-1.5] |
|
- | 122 | slib_xt=$[$slib_xt-1.5] |
|
- | 123 | !else |
|
- | 124 | slib_y=$[$slib_y+1.5] |
|
- | 125 | slib_yt=$[$slib_yt+1.5] |
|
- | 126 | !endif |
|
127 | !endif |
127 | !endif |
128 | slib_out=$slib_out\ |
128 | slib_out=$slib_out\ |
129 | affine $slib_matrix,$slib_x,$slib_y\ |
129 | affine $slib_matrix,$slib_x,$slib_y\ |
130 | $(comp_$slib_cmd)$slib_extender |
130 | $(comp_$slib_cmd)$slib_extender |
131 | !if $slib_tlen>0 and $slib_name notwordof $comp_notext |
131 | !if $slib_tlen>0 and $slib_name notwordof $comp_notext |
132 | !ifval $slib_tlen=1 and $slib_cmd iswordof src |
132 | !ifval $slib_tlen=1 and $slib_cmd iswordof src |
133 | slib_xt=$[$slib_x-0.15] |
133 | slib_xt=$[$slib_x-0.15] |
134 | slib_yt=$[$slib_y+0.4] |
134 | slib_yt=$[$slib_y+0.4] |
135 | !endif |
135 | !endif |
136 | !if $slib_name iswordof voltmeterN ammeterN lampN |
136 | !if $slib_name iswordof voltmeterN ammeterN lampN |
137 | slib_xt=$[$slib_x+0.30] |
137 | slib_xt=$[$slib_x+0.30] |
138 | slib_yt=$[$slib_y+0.30] |
138 | slib_yt=$[$slib_y+0.30] |
139 | !endif |
139 | !endif |
140 | slib_out=$slib_out\ |
140 | slib_out=$slib_out\ |
141 | killaffine\ |
141 | killaffine\ |
142 | text _color_,$slib_xt,$slib_yt,$slib_textsize,$slib_text |
142 | text _color_,$slib_xt,$slib_yt,$slib_textsize,$slib_text |
- | 143 | !endif |
|
143 | !endif |
144 | !endif |
144 | !endif |
- | |
145 | :loopend |
145 | :loopend |
146 | !next slib_i |
146 | !next slib_i |
147 | 147 | ||
148 | slib_out=!replace internal _color_ by $slib_color in $slib_out\ |
148 | slib_out=!replace internal _color_ by $slib_color in $slib_out\ |
149 | killaffine |
149 | killaffine |