Subversion Repositories wimsdev

Rev

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
	slib_x,slib_y,slib_xt,slib_yt,slib_orient,slib_e1,slib_e2
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