File: done.txt

package info (click to toggle)
sch-rnd 1.0.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,696 kB
  • sloc: ansic: 119,120; awk: 1,502; makefile: 1,421; sh: 1,404; yacc: 905; lex: 172; xml: 160
file content (447 lines) | stat: -rw-r--r-- 13,935 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
Tutorial videos done:

+ getting started (~15..20 minutes)
	(single sheet only)
	(default lib only)
	(blinking LEDs, 2 transistors, PCB workflow)
	- setup:
		- sheet attributes for the titlebox
		- save
	-place
		- library window, place symbols
		- arrange symbols
	- draw nets
		- shift
		- {/}
		- endpoint drag for draeing the crossing
		- connection indication (layer toggle)
	- metadata
		- {a a} name symbols (all!)
		- {a v} change value: res, cap
		- {a f} change footprint on resistors
		- (explain devmap)
		- {a d} on NPNs
		- {a d} on leds and caps
		- place floater on devmap
		- {a a} name nets
		* this can be done more efficiently, shown in another video
		- battery portmap
		- save
		- create/arrange floaters for net names
	- abstract model & netlist
		- inspect the abstract model with {w a}
		- explain abstract/concrete models and terminology
		- export tEDAx netlist
		- export ps


+ arbitrary grouping sheet decoration
	- draw an arrow
	- box-select
	- convert to group
		- group origin
	- select, move it around, transform, copy in group
	- save/load menu

+ selections and locking
	- click-select
	- click-away to unselect
		- beware of clicking within symbols
	- only on wirenet: double selection means select wirenet
	- shift+click to add selection
	- shift+click to remove from selection
	- positive selection box
		- do not start on an existing object, that's drag&drop move
	- negative selction box
	- layer visibility
	- lock object so it can not be selectd
	- unlock is the only tool that works on locked objects

+ constructing an arbitrary polygon
	- draw lines and arcs
	- make sure endpoints connect
	- select all
	- select menu, convert to polygon
	- propedit:
		- fill color
		- stroke color
		- has_fill
		- has_stroke
	- clicking works only on the contour!
	- break up, edit, convert again
		- won't remember stroke and fill

+ operations on object vs. selected
	- object:
		- right click context menu
		- {e s}, {a a} and alike
		- transformations (mirror, rotate)
		- invoke from menu -> no cursor -> ask for obj (rotate)
		- drag&drop endpoint move is nothing is selected
		- drag&drop object move is nothing is selected
	- selection:
		- drag&drop move if anything is selected
		- convert hotkeys
		- select menu

+ paste buffers
	- open with 2 sheets
	- copy with ctrl+c
	- cut with ctrl+x
	- paste with the buffer tool
	- while the buffer tool is active:
		- rotate buffer with {e w},
		- mirror with {e v} for vertical or {e h} for horizontal
	- {b r a} for arbitrary rotation
	- multi-sheet: buffer is cross-sheet
	- undo effects sheet part (e.g. paste or cut) but not buffer contents
	- multiple buffers
	- buffer saves/load
		- full content
		- group/symbol

+ backann

+ how to use the crosshair

+ how to use propedit for multi-object editing

+ how to construct a symbol
	- symbol: piezo-electric buzzer
	- draw decoration
	- use {p t} to place terminals
	- mention standard grid (4k)
	- arrange everything
	- name terminals using {a a}
	- select, convert to symbol
	- save symbol
	- move symbol to lib
	- refresh lib

+ undo/redo
	- open with two sheets
	- line, circle, move
	- open the undo dialog
	- undo with {u u}, redo with {u r}
	- undo/redo from the dialog
	- explain the undo list (list of operations)
	- it is not saved
	- it is per sheet
	- demonstrate multisheet

+ custom pinout with devmap (how to create devmap)
	(do the same as in "custom pinout with portmap" above)
	- enable autocompile
	- copy one of the existing files
	- open datasheet, open the symbol in raw mode
	- fill in the pinout
	- place transistor symbol
	- change devmap attribute (context menu or hotkey {a d})

+ custom pinout with converting to heavy symbol
	(need the datasheet of some old device)
	- enable autocompile
	- place transistor symbol
	- attribute editor
		-remove devmap attribute
		- add the footprint attribute
		- close editor
	- remove the devmap floater leftover
	- {a a} over each term label

+ custom pinout with portmap
	(need the datasheet of some old device)
	- enable autocompile
	- place transistor symbol
	- attribute editor, remove devmap attribute
	- add the footprint attribute
	- add portmap attribute, convert to array
	- assisted edit portmap

+ text edit: tools and basic properties
	- place text
	- use {e t} to edit ot
	- use {e s} to change pen
	- change rotation
	- no mirror
	- show bbox with (....)

+ dyntext text object edit: dyntext
	- place text
	- use {e t} to edit text
	- propedit
	- edit text, add %../A.title%
	- enable dyntext
	- invoke the tree to show why this works, explain the .. part
	- edit sheet attribute title to show it is the same thing
	- show 3-field {e t}
	- demonstrate how refdes is the same thing
	- demonstrate how any other attribute can be printed
	- quicker path is 'add floater'
	- demonstrate how term label is the same thing, explain the 'a' vs 'A' part

-- attribute editor: basics
	- enable autocompile
	(- place a symbol: npn transistor)
	- opening symbol attributes
		- context menu
		- {a a}
	- using the attribute editor
		- left side concrete, right side abstract
		- edit value of existing string attributes: name
		- see how it changes on the right side
		- add custom attribute: product_id (shows up on the right)
		- edit name of existing attribute (product_id to prod_id)
		- create a floater for prod_id
		- del attribute (prod_id)
		- delete floater

-- attribute editor: array editing and assisted editing
	(- place a symbol: npn transistors)
	- open attribute editor
	- remove the devmap attribute 
	- create portmap attribute
	- change it to array
	- use assisted edit for mapping 2 pins
	- fill in the 3d pin using raw array edit

-- using pens
	- place text, draw a rectangle around it and place a symbol
	- choose different stroke pen for the text - use menu
	- choose different stroke pen for the rect - use {e s}
	- choose different fill pen for rect
	- explain where pens are stored and how they are defined for purpose not looks
	- demonstrate this on sym-decor
	- create a new pen called error
	- change text and rectangle to error pen

-- text: alignment, bbox-defined text
	- origin
		- place text object (looong text)
		- text size: pen {e s} (refer to the pen video)
		- enable text meta layer -> bbox shown
		- change font size -> bbox grows
		- change text -> bbox grows
		- explain the origin of the text object, "grows away"
		- horizontal-mirror text to show the grow-away effect
		- (there's no real mirror: pixels are not mirrored)
	- bbox based
		- property editor, enable has_bbox
		- edit text to longer -> bbox remains, text size shrinks: width-constraint
		- edit text to shorter -> bbox remains: height-constraint
		- propedit, different halign values
		- mirror: origin and halign matter together

-- how to connect things (net)
	- wire: draw net
	- wires + net names
	- wire stub + net names
	- connect symbol attribute
	- vcc, gnd
	- generic rail symbol

-- tree view:
	- 2 sheets
	- window menu, show both sheets
		- navigate to object
		- mention preview
		- select/unselect
		- propedit, attr edit
		- del -> pending update
	- right click invocation

-- propedit dialog (multi is already covered)
	- right click propedit on a symbol
	- close subtrees
	- explain p/ and a/
	- reopen subtrees
	- a/
		- open a/, open attr dialog, compare
		- a/role: edit as string, edit with assisted edit
	- p/
		- explain generic flags
		- explain grp/
		- change rot by abs value
		- step rot
		- change rot by rel value
	- open a new propedit on a text object
		- explain there's no a/
		- show the different p/text subtree
		- change rot

-- navigating the abstract model (tracing back sources)
	- use the slot2 example
	- find objects:
		- U1 sources
			- explain multisheet case
		- U1's 1/A port source
		- net/clk sources
	- attribute history:
		- U1, 3/Z
			- pcb/pinnum attribute
			- history src (tooltip!) -> U1 portmap
			- history src -> attr edit -> change to 87
	- tree view to abstract
		- right click on the terminal for 87
		- left side: no 87; right side: 87
		- history src twice

+ how to speed up setting symbol attributes
	- show the manual way
	- make one right, copy that
	- select + :propedit -> quick edit button on the bottom right!
		* multi on arc is already shown in another video
	- renumber plugin

+ symbol terminal:
	- text alignment on terminals
		- turn on text meta
		- mirroring terminals instead of just moving
	- text alignment inside the body
		- same as terminals, just align the other way around
	- how to make terminal longer (sloped, opamp example)
		- cheat with an extra line
		- create the terminal by converting a line

+ export sheet
	- graphical export from menu or keyboard (single sheet, png, svg)
	- automated export using -x (single sheet, png, svg)
	- default output file name: generated from sheet name
	- override default output file name

+ export project
	- graphical export from menu or keyboard (multi-page ps, multi-file svg)
	- automated export using -x project.lht (multi-page ps, multi-file svg)
		-> all pages listeed are exported
	- automated export using -x doc.lht MCU.lht (multi-page ps)
		-> only pages named are exported
	- default output file name depends on project.lht
	- override default output file name

+ flat multisheet with implicit project file listing
	- start sch-rnd with multiple sheets from cli
	- show that project is marked [i] in the sheetsel
	- explain implicit projects
		- sheet files are in the same directory, that's how they are an implicit project
		- if there's project file, it holds cfg, no sheet list
		- does not matter if project file exists or not, but whether sheet list is empty or not
	- implicit project files work from the command line:
		- when sch-rnd is started for editing
		- or for export
	- explain implicit projects
		- disadvantage: sch-rnd is not aware of the file names
		- advantage: no extra project file list (e.g. compared to Makefile)
			- show a makefile!!!
	- creating new sheet
		- CLI: name it on the command line
		- GUI: menu: new unlisted sheet
		- load the file from the GUI

+ flat multisheet with explicit project file listing
	- mkdir from the shell
	- run sch-rnd, menu for create new project
	- create three types of new sheets plus one extra
	- quit and start sch-rnd then load the project file
	- quit and start sch-rnd with the project file
	- quit and export the project with -x
	- show [e] for explicit project
	- load partial projects:
		- start sch-rnd with not all sheets
		- start sch-rnd on the project file but unload sheet
		- show the menu for loading missing sheets
	- show project properties, change the type of the extra sheet

+ multiple pins per terminal
	- (explain the so(8) mosfet problem)
	- draw mostfet, 3 resistors
	- remove devmap from the mosfet, add portmap
	- fill in portmap: S=1 2 3; G=4; D=5 6 7 8
	- add footprint
	- export to tedax, show the result

+ how to use the preferences window, part 1
	- load a sheet so that we have a project file
	- invoke from file menu
	- navigate to the color tab
	- set role!!! to project
	- change generic color for "beyond drawing area", explain it's a frame/indication
	- exit, restart -> no frame; load -> frame; show a differnt project has no frame
	- redo the whole thing on user role
	- restart; show it's not project dependent

+ how to use the preferences window, part 2
	- load a sheet so that we have a project file, from part 1
	- invoke from file menu
	- tree tab
	- show the left side tree and search for color; off_limit is ours
	- explain the right side (top is input, bottom is conclusion)
	- (show this in the project file)
	- remove selected on project level
	- add a different one on project level
	- explain read-only levels

+ attribute editor: overriding footprint attribute using prio
	- place a symbol: nfet
	- devmap is 2n7002_sot23
	- open attribute editor
	- show footprint on the right side
	- show history of footprint attribute on the right side -> it's from devmap
	- add footprint to sot23_bigpad
	- show history of footprint attribute on the right side -> it's overridden
	- change attribute prio to 31050
	- show history of footprint attribute on the right side -> it's devmap again
	- show how devmap prio is calculated (engine list)
	- show the table for default prios

+ drawing sheet decoration
	- lines
		- line tool vs. wire tool
			- anydir vs. orthogonal
			- top level objects vs. wirenet group (show tree on right click)
			- juntions made (draw junctions)
		- move at once - no select
		- grab endpoint - no select
		- move selected
		- stroke {e s}
	- rectangles
		- stroke {e s}
		- fill
	- text
		- stroke {e s} changes font

+ local lib support for devmaps
	- empty sheet, place fet and an npn
	- show devmap attributes
	- open the {w w d} dialog from menu
	- show <local>, lm358 inserted
	- show "count"
	- show refresh button, explain it is for edited
	- turn off compilation
	- mass version: maintenance menu, clean
	- compile
	- show these buttons are not present in other parts of the lib
	- show lib refresh doesn't work in <local>

+ local lib support for symbols, part 1
	- (turn off autocompile, save, set up terminal with watch ls -l)
	- save sheet with a single resistor, show size
	- show how file size is growing with 4 copies of the same resistor
	- show propedit: grp type
	- delete all resistors, save
	- enable lolib: mode menu, symbol libraries
	- place a resistor, save, show file size
	- place a 4 copies, save, show file size
	- show propedit: grp_ref type
		- explain how shared attributes are not accessible
	- open attribute editor
		- show the two sections
		- add new, value, show it is added to the local section
		- edit value, show how it is copied
	- open library window, show local lib section
		- show the # button
		- edit value in loclib, show how all changes...
			- ... except for the one with local deviation
		- refresh: overwrites our value change
		- remove and unembed
			-> show file size