
Not applicable
07-19-2020
08:09 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
The following code (ref) can be used to generate a 2D diagram when coordinates, nodes, and edges of a graph are given.
(defun graph ( pts sls tls wgt ) ( (lambda ( l ) (foreach x l (text (cdr x) (itoa (car x)) 0.0 1)) (mapcar '(lambda ( a b c / p q r ) (setq p (cdr (assoc a l)) q (cdr (assoc b l)) r (angle p q) ) (entmake (list '(0 . "LINE") (cons 10 p) (cons 11 q) '(62 . 8))) (text (mapcar '(lambda ( x y ) (/ (+ x y) 2.0)) p q) (itoa c) (if (and (< (* pi 0.5) r) (<= r (* pi 1.5))) (+ r pi) r) 2 ) ) sls tls wgt ) ) (mapcar 'cons (vl-sort (append sls tls) '<) pts) ) ) (defun text ( p s a c ) (entmake (list '(0 . "TEXT") (cons 10 p) (cons 11 p) (cons 50 a) (cons 01 s) (cons 62 c) '(40 . 2) '(72 . 1) '(73 . 2) ) ) )
(graph '((75 25) (115 45) (90 60) (10 5) (45 0) (45 55) (0 25)) '( 1 1 1 1 2 2 3 4 4 5 6) '( 2 3 4 5 3 6 6 5 7 7 7) '(50 10 20 80 90 90 30 20 100 40 60) )
I'd like to ask for suggestions on how the above code has to be modified to draw 3D diagrams when 3D coordinates of nodes are available.
(graph '((75 25 0) (115 45 24) (90 60 21) (10 5 4) (45 0 1) (45 55 23) (0 25 123)) '( 1 1 1 1 2 2 3 4 4 5 6) '( 2 3 4 5 3 6 6 5 7 7 7) '(50 10 20 80 90 90 30 20 100 40 60) )
Solved! Go to Solution.