1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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
|
+
-
+
+
+
+
-
-
+
+
+
|
(use canvas-draw iup)
(import canvas-draw-iup)
(load "vg.scm")
(use trace)
(trace
(trace vg:draw-rect)
vg:draw-rect
vg:grow-rect
vg:components-get-extents)
(define d1 (vg:drawing-new))
(define l1 (vg:lib-new))
(define c1 (vg:comp-new))
(define c2 (vg:comp-new))
(let ((r1 (vg:make-rect 20 20 40 40))
(r2 (vg:make-rect 40 40 80 80)))
(vg:add-objs-to-comp c1 r1 r2))
(r2 (vg:make-rect 40 40 80 80))
(t1 (vg:make-text 40 40 "The middle" font: "Helvetica, -10")))
(vg:add-objs-to-comp c1 r1 r2 t1))
;; add the c1 component to lib l1 with name firstcomp
(vg:add-comp-to-lib l1 "firstcomp" c1)
(vg:add-comp-to-lib l1 "secondcomp" c2)
;; add the l1 lib to drawing with name firstlib
(vg:add-lib d1 "firstlib" l1)
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
-
+
|
;; (define xtnts (vg:scale-offset-xy
;; (vg:component-get-extents c1)
;; 1.1 1.1 -2 -2))
;; get extents of c1 and put a rectange around it
;;
(define xtnts (apply vg:grow-rect 10 10 (vg:components-get-extents c1)))
(define xtnts (apply vg:grow-rect 10 10 (vg:components-get-extents d1 c1)))
(vg:add-objs-to-comp c1 (apply vg:make-rect xtnts))
;; get extents of all objects and put rectangle around it
;;
(define big-xtnts (vg:instances-get-extents d1))
(vg:add-objs-to-comp c2 (apply vg:make-rect big-xtnts))
(vg:instantiate d1 "firstlib" "secondcomp" "inst3" 0 0)
|