Quellcode
- (defun C:dreh(/ x)
- (setq time 40)
- (command "_UCS" "_w")
- (setq xm 1000.0)
- (setq ym 500.0)
- (command "_.rectang" "975,475" "1025,525")
- (setq coor (list
- (list 950.0 500.0 )
- (list 1050.0 500.0)
- (list 1050.0 550.0)
- (list 1000.0 550.0)
- (list 1000.0 450.0)
- (list 950.0 450.0 )
- (list 950.0 550.0 )
- (list 1050.0 550.0)
- (list 1050.0 450.0)
- (list 1000.0 450.0)
- )
- )
- (setvar "clayer" "2")
- ;;Kann man das besser machen??????
- (command "_.pline")
- (foreach x coor
- (command x)
- )
- (command "")
- (setvar "clayer" "0")
- (setq ed (entget(entlast))) ;; grab polyline
- (setvar "clayer" "1")
- (command "_.rectang" (list xm ym) (list (+ xm 50.0) (+ ym 50.0)) )
- (setq big (entget(entlast)))
- (setvar "clayer" "0")
- (setq winkel (/ (* 1.0 PI) 180.0) )
- (setq y 1)
- ;;jetzt wird einmal im Kreis rotiert
- (while (<= y 360)
- (progn
- (setq ed (rotate xm ym winkel ed))
- (setq big (rotate xm ym winkel big))
- (setq small_ed ed)
- (setq y (1+ y))
- ;(entmod ed)
- (command "_delay" time)
- )
- )
- )
- (defun rotate (x1 y1 angle1 object)
- (setq small_ed object)
- (while (/= (assoc 10 small_ed) nil)
- (progn
- (setq x (cdr(assoc 10 small_ed)))
- (setq object (subst (list 10 (+ (* (- (car x) x1) (cos angle1)) (* -1.0 (- (cadr x) y1) (sin angle1)) x1)
- (+ (* (- (car x) x1) (sin angle1)) (* (- (cadr x) y1) (cos angle1)) y1)
- )
- (assoc 10 small_ed )
- object ))
- (setq small_ed (cdr (member (assoc 10 small_ed) small_ed)) )
- )
- )
- (entmod object)
- )
Kann mir vielleicht jemand sagen wie ich meine Code verbessern könnte. Ich selber finde ihn nicht besonders schön, weiß aber auch nicht wie ich ihn verbessern könnte.
Lg Apfelstrudl
Ps.: Der Code erzeugt genau das:
[Blockierte Grafik: http://farm3.static.flickr.com/2484/3612225246_813c7f5a63_o.gif]
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Apfelstrudl ()