yoin

Marcel

Wie heeft of weet een goed lisp routine om een spiltrap te tekenen in boven aanzicht en nog mooier natuurlijk een zij-aanzicht (geen 3d versie ).
Welk in te voeren is bij voorkeur met dialog box.


Marcel

Kenny H

Beste Marcel,

Daar bestaan trappen programma's voor.
Staircase enz.  :wink:
Via AutoCAD tekenen ze niet veel trappen meer. Eedere details die ze niet kunnen via staircase.
Via die staircase kun je meteen stuklijsten, cnc programma's maken. :wink:
8) Volvo 4 Life 8)

Kenny H

Hier zijn nog een paar programma's,

Winstairs
http://www.elp.fr/cdt/My%20Webs/Pages/Nederlands/Trappenpro.htm

Trepcad
http://www.trepcad.com/startseite.shtml?de

Staircase bestaat maar ik vind er niets van terug op net.  :?

In welke sector wil je deze gebruiken :?:
Hout, Metaal, ...

Een lisp file maken voor een spiltrap is niet eenvoudig :!:
Er zijn véél zaken waar je rekening moet mee houden.
Ik bezit geen trappenprogramma, maar ik heb er 8 dagen mee gewerkt.
En dat gaat héél vlot om een trap te tekenen.

:idea: Van mij mag je proberen een lisp te schrijven, ik wil wel helpen.
Als graduaat Hout weet ik iets van trappen. :wink:

Groeten

Kenny
8) Volvo 4 Life 8)

WebRacer

Citaat van: Kenny HAls graduaat Hout weet ik iets van trappen.
Kenny

hohoho, eerst bewijzen e......

Ik heb iets voor rechte trappen, en voor trappen onder hoek, maare, geen spiltrappen, helaas

en BTW. die trap-lisps had ik maar 1 keer nodig, ik weet niet of die nog up-2-date zijn..
?

Marcel

Het is voor bedoelt om te gebruiken in een 1:100 of 1:20 tekening.Materiaal is niet echt belangrijk maar het gaat er meer om of de trap klopt volgens bouwbesluit.

En het handmatig tekenen van een spiltrap is tijdrovend,dus vandaar mijn vraag.

Groeten Marcel


Ik vond dit op het net (maar kan het nu niet uitproberen daar ik nu niet over AutoCAD beschik)en dit is in 3D.!!!

;SPST.LSP
;Draw spiral stair
;--------------------------------------------------------------------
;Main function
;--------------------------------------------------------------------
(defun c:spst ( / zcmd zblp zosm cn ag0 r1 r2 ag ht rase
                 dag dht ag1 tyn ty rw rn rt p1 p2 p3 p4
                 pa pb b1 b2 b31 b41 b5 b6 b32 b42
                 plist lista listb nr
             )
  (setq zcmd (getvar "cmdecho")
        zblp (getvar "blipmode")
        zosm (getvar "osmode")
  )
  (setvar "cmdecho" 0)
  (initget 1)
  (setq cn  (getpoint "\nCenter:"))
  (initget 1)
  (setq ag0 (getangle cn "\nRotation angle of first step:"))
  (initget 7)
  (setq r1  (getdist cn "\nInner radius:"))
  (initget 7)
  (setq r2  (getdist cn "\nOuter radius:"))
  (initget 3)
  (setq ag  (getreal "\nAngle between first and last steps:"))
  (initget 3)
  (setq ht  (getreal "\nStair height [+ up][- down]:"))
  (initget 7)
  (setq nr  (getint "\nNumber of steps:")
        ag (* pi (/ ag 180.0))
        rase (/ ht nr)
        dag  (/ ag nr)
        dht  (/ ht (1+ nr))
        ag1  (- ag0 dag)
        tyn 8
  )
  (setvar "osmode" 0)
  (setvar "blipmode" 0)
  (initget 1 "A B")
  (setq ty (getkword "\nSpiral stair type <A>:"))
  (initget 5)
  (setq rw (getreal "\nRailing width:"))
  (initget 5)
  (setq rh (getreal "\nRailing height:"))
  (initget 1)
  (if (= ty "A")
      (setq rt (* -1 (getreal "\nRailing thickness:")) tyn 4)
  )
  (repeat (+ nr 1)
    (setq ag1 (+ ag1 dag)
          p1 (polar cn ag1 r1)
          p2 (polar cn ag1 r2)
          p3 (sp p1 dht)
          p4 (sp p2 dht)
    )
    (if (minusp ht)
        (setq pa (sp p1 (* 2 dht))        
              pb (sp p2 (* 2 dht))
        )
        (setq pa (sp p1 (* -1 dht))
              pb (sp p2 (* -1 dht))
        )
    )
    (if (and (equal ag1 ag0 0.001)(null (minusp ht)))
        (setq pa p1 pb p2)
    )
    (if (and (equal ag1 (+ ag0 ag) 0.001)(minusp ht))
        (setq pa (sp p1 dht)
              pb (sp p2 dht)
    ))
    (setq b1 (sp p1 rh)
          b2 (polar b1 ag1 rw)
          b31 (polar p1 ag1 rw)
          b41 (polar cn ag1 (- r2 rw))
          b5 (sp b41 rh)
          b6 (polar b5 ag1 rw)
          b32 (sp b31 dht)
          b42 (sp b41 dht)
    )
    (if (= ty "A")
        (setq plist (append plist (list pa p1 p2 pb pa p3 p4 pb))
              lista (append lista (list b1 b2 (sp b2 rt)(sp b1 rt)))
              listb (append listb (list b5 b6 (sp b6 rt)(sp b5 rt)))
        )
    )
    (if (= ty "B")
        (setq plist (append plist (list pa b1 b2 b31 b41 b5 b6 pb
                                        pa b1 b2 b32 b42 b5 b6 pb))
        )
    )
    (setq cn (list (car cn)(cadr cn)(+ (caddr cn) dht)))
  )
  (setq nr (length plist))
  (command "3dmesh" (/ nr tyn) tyn)
  (repeat nr
     (command (car plist))
     (setq plist (cdr plist))
  )
  (command "")
  (spstnc)
  (if lista
      (progn (setq nr (length lista))
             (command "3dmesh" (/ nr 4) "4")
             (repeat nr (command (car lista))
                        (setq lista (cdr lista))
             )
             (command "")
             (spstnc)
             (command "3dmesh" (/ nr 4) "4")
             (repeat nr (command (car listb))
                        (setq listb (cdr listb))
             )
             (command "")
             (spstnc)
      )
  )
  (setvar "osmode" zosm)
  (setvar "blipmode" zblp)
  (setvar "cmdecho" zcmd)
  (princ)
)
;
;--------------------------------------------------------------------
;Get the point with increment h in Z direction
;--------------------------------------------------------------------
(defun sp ( pt h)
  (list (car pt)(cadr pt)(+ (caddr pt) h))
)
;
;--------------------------------------------------------------------
;Enclose the 3D mesh as the last entity in N direction
;--------------------------------------------------------------------
(defun spstnc ( / en ed )
  (setq en (entlast)
        ed (entget en)
        ed (subst (cons 70 48)(assoc 70 ed) ed)
  )
  (entmod ed)
)
;
;--------------------------------------------------------------------
;Print message
;--------------------------------------------------------------------
;
(princ "\nSPST.LSP loaded. Type SPST to draw spiral stair.")
(princ)

Kenny H

Citaat van: WebRacer
hohoho, eerst bewijzen e......

Gaat gij mijn kennis in twijfel brengen :?:
:mrgreen:
8) Volvo 4 Life 8)

Marcel

En weer een ook jammer genoeg 3D...


;TIP1344.LSP:    SP.LSP    3D Spiral stairs    (c)1997, Xu-Hong Yang

(defun dtr (r)
 (* r (/ pi 180.0)))
(defun rtd (r)
 (* r (/ 180.0 pi)))

(defun spinfo ()                                        ; staircase parameter
 (setq cp    (getpoint "\nCenter of Spiral Staircase: ")
       lp    (getpoint cp "\nLocation of first tread at inner radius: ")
       riser (getdist lp "\nRiser height: ")
       step  (getdist lp "\nMinimum tread depth at inner radius: ")
       wide  (getdist lp "\nStair width: ")
       hrl   (getdist lp "\nHeight of Handrail: ")
       thi   (getdist lp "\nThickness of Slab: ")
       case  (getint "\nNo. of treads: ")
       ls (sqrt (+ (expt riser 2) (expt step 2)))
       a (/ riser ls)    ; sin A
       b (/ step ls)     ; cos A
       c lp
 )        
)           ; end SPINFO

(defun spcalc ()
 (initget "L R B N")
 (setq ans (getkword "\n(L)eft/(R)ight/(B)oth-side/(N)one for Handrail: "))
 (setq blksp (open "blksp.lst" "r"))
 (if (not (equal blksp nil))
     (setq blk (read-line blksp))
 )
 (if (equal blk nil)
     (setq blk "sp1")
     (setq blk (strcat "sp"
                       (itoa (1+ (atoi (substr blk 3)))))
     )
 )
 (setq r (distance cp lp))
 (setq ang (/ step r))         ; determines the angle of the step
 (setq ac (angle cp lp))
 (setq rp (polar lp ac wide)
       lp1 (list (car lp) (cadr lp) riser)
       lp4 (list (car rp) (cadr rp) riser)
       count 0
       el riser
       al ang
 )        
 (setq diag (+ ac ang))
 (setq lp2 (list (car (polar cp diag r))
                 (cadr (polar cp diag r))
                  riser)
       lp3 (list (car (polar cp diag (+ r wide)))
                 (cadr (polar cp diag (+ r wide)))
                  riser)
       lh (polar cp (+ ac (/ ang 2)) (+ r (/ wide 15)))       ; left bottom hrl
       lh1 (list (car lh) (cadr lh) (+ (caddr lh) riser))      
       lh2 (list (car lh1) (cadr lh1) (+ (caddr lh1) hrl))    ; left top hrl
       sht (polar cp diag (+ r (/ wide 15)))
       shb (polar cp ac (+ r (/ wide 15)))
       sh1 (list (car shb) (cadr shb) (+ (caddr shb) (+ hrl (/ riser 2))))
       sh2 (list (car sht) (cadr sht) (+ (caddr sht) hrl (* riser 1.5)))
 )
 (setq tlp (list (car lp) (cadr lp) (- (caddr lp) (/ thi b)))
       tl1 (list (car lp2) (cadr lp2) (- (caddr lp2) (/ thi b)))
       trp (list (car rp) (cadr rp) (- (caddr rp) (/ thi b)))
       tr1 (list (car lp3) (cadr lp3) (- (caddr lp3) (/ thi b))))
 (command "layer" "m" "spiral" ""                 ; set spiral layer and color
          "layer" "c" "blue" "" "")
 (command "3dface" lp1 "i" lp2 lp3 lp4 ""         ; draw the step
          "3dface" lp lp1 lp4 rp ""               ; draw the riser
          "3dface" lp3 lp4 "i" rp "" ""           ; draw the right side face
          "3dface" lp2 lp1 "i" lp "" ""           ; draw the left side face
          "3dface" "i" trp "i" rp "i" lp3 tr1 ""  ; draw the thickness
          "3dface" "i" tlp "i" lp "i" lp2 tl1 ""
          "3dface" "i" trp tlp "i" tl1 tr1 "")    ; draw the bottom face
 (command "layer" "m" "scolumn" ""               ; set handrail column layer
          "layer" "c" "cyan" "" ""               ; and color
          "layer" "m" "shandrail" ""             ; set handrail layer and
          "layer" "c" "red" "" "")               ; and color
 (if (or (= ans "L") (= ans "B"))
   (progn  
     (command "layer" "s" "scolumn" "")
     (command "circle" lh1 (/ step 18))          ; draw the handrail column
     (setq cir (entlast))
     (command "line" lh1 lh2 "")
     (setq lc (entlast))
     (command "tabsurf" (list cir lh1) (list lc lh1))
     (setq tcl (entlast))
     (command "layer" "s" "shandrail" "")
     (command "circle" sh1 (/ step 15)           ; draw the handrail
              "ucs" "y" 90)
     (setq c1 (entlast)) (setq sh1r (trans sh1 0 1))
     (command "rotate" c1 "" sh1r (rtd (- b))
              "ucs" "")
     (command "line" sh1 sh2 "")
     (setq l1 (entlast))
     (command "tabsurf" (list c1 sh1) (list l1 sh1))
     (setq thl (entlast))
   )
 )        
 (if (or (= ans "R")(= ans "B"))
   (progn                                        ; draw the right handrail
     (setq dis (- wide (* 2 (/ wide 15)))        
           sr1 (polar sh1 ac dis)
           sr2 (polar sh2 diag dis)
           rh1 (polar lh1 (+ ac (/ ang 2)) dis)      
           rh2 (polar lh2 (+ ac (/ ang 2)) dis )    
     )
     (command "layer" "s" "scolumn" "")
     (command "circle" rh1 (/ step 18))              
     (setq cir1 (entlast))
     (command "line" rh1 rh2 "")
     (setq rc (entlast))
     (command "tabsurf" (list cir1 rh1) (list rc rh1))
     (setq tcr (entlast))
     (command "layer" "s" "shandrail" "")
     (command "circle" sr1 (/ step 15)
              "ucs" "y" 90)
     (setq c2 (entlast)) (setq sr1r (trans sr1 0 1))
     (command "rotate" c2 "" sr1r (rtd (- b)) "ucs" ""
              "circle" sr2 (/ step 15)
              "ucs" "y" 90)
     (setq c3 (entlast)) (setq sr2r (trans sr2 0 1))
     (command "rotate" c3 "" sr2r (rtd (- b))
              "ucs" "")
     (command "line" sr1 rh2 "") (setq l2 (entlast))
     (command "line" rh2 sr2 "") (setq l3 (entlast))
     (command "tabsurf" (list c2 sr1) (list l2 sr1)
              "tabsurf" (list c3 sr2) (list l3 sr2))
     (setq thr (entlast))))
 (if (= ans "L")
   (command "block" blk lp "c" tlp lp4 tr1 tcl thl "" "oops"))        
 (if (= ans "R")
   (command "block" blk lp "c" tlp lp4 tr1 tcr thr "" "oops"))
 (if (= ans "B")
   (command "block" blk lp "c" tlp lp4 tr1 tcl tcr thl thr "" "oops"))
 (if (= ans "N")
   (command "block" blk lp "c" tlp lp4 tr1 "" "oops"))
 (setvar "clayer" cla)
 (setq count (1+ count)                       ; initialize counters for loop
       lp (list (car (polar cp diag r))
                (cadr (polar cp diag r))
                riser
          )
       riser (+ riser el)
       diag (+ ang ang ac)
 )      
)          ; end SPCALC

(defun sbuild ()                                    
 (command "INSERT" blk lp "" "" (rtd ang))
 (setq  lp (list (car (polar cp diag r))
                 (cadr (polar cp diag r))
                 riser)
        count (1+ count)                       ; increment all counters
        ang (+ ang al)
        diag (+ diag al)
        riser (+ riser el)
 )        
 (if (< count case)                            ; get last set of coordinates
   (progn                                      ; to form ending face
     (setq lp2 (list (car (polar cp diag r))
                     (cadr (polar cp diag r))
                     riser)
           lp3 (list (car (polar cp diag (+ r wide)))
                     (cadr (polar cp diag (+ r wide)))
                     riser)
           tl1 (list (car lp2) (cadr lp2)
                     (- (caddr lp2) (/ thi b)))
           tr1 (list (car lp3) (cadr lp3) (- (caddr lp3) (/ thi b)))
     )
   )
 )
)          ; end SBUILD

(defun C:Sp (/ bli cmd cla blksp cp lp riser step wide count hrl blk thi
              lp1 lp2 lp3 lp4 case el rp diag al ang a tr1 tl1)
 (setq bli (getvar "blipmode")
       cmd (getvar "cmdecho")
       cla (getvar "clayer")
 )
 (setvar "blipmode" 0)
 (setvar "cmdecho" 0)
 (spinfo)
 (spcalc)
 (while (< count case)
        (sbuild)
 )
 (command "layer" "s" "spiral" ""                      ; draw ending face
          "3dface" "i" lp3 tr1 "i" tl1 "i" lp2 "")
 (setvar "cecolor" "bylayer")
 (setvar "blipmode" bli)
 (setvar "cmdecho" cmd)
 (setvar "clayer" cla)
 (if (not (equal blksp nil))
     (close blksp)
 )
 (setq blksp
       (open "blksp.lst" "w")
 )
 (write-line blk blksp)
 (close blksp)
 (princ)
)            ; end SP.LSP


Weet niet voor emoticons vandaan komen!!!!!!!!!!


maar er moet staan 18

Kenny H

Marcel,

Die lisp gaat idd om een trap te tekenen.
8) Volvo 4 Life 8)

Kenny H

Een 8+) geeft 8)
Best een spatie tussen zetten.  :wink:
8) Volvo 4 Life 8)

WebRacer

Knappe lisp gewoon:
dit is het resultaat van een test:

?

drafabart

Hallo

Met alle respect, maar ik vraag me af of je de basis van autocad wel geleerd hebt?

CiteerHet is voor bedoelt om te gebruiken in een 1:100 of 1:20 tekening.Materiaal is niet echt belangrijk maar het gaat er meer om of de trap klopt volgens bouwbesluit.

Volgens mij kun je altijd nog verschalen eens de trap getekend is.

Het is ook raar dat je absoluut geen 3D wilt. Een trap in 3D is toch een meerwaarde.
Je kunt er alle aanzichten uithalen, zelfs perspectieven. Je kunt de trap ook renderen zoals hierboven.

Huib

Met alle respect:

Dit is een topic uit 2005.................

stefke

kan iemand mij zeggen hoe ik die lisp voor de spiltrap kan inladen in autocad 2008 werk er weinig mee en ben he vergeten

Kenny H

Beste,

Dit kun je doen door AP in te typen of wel door Tools  :arrow: AutoLisp  :arrow: Load application...
Dan daar de gewenste file selecteren en zo wordt die ingeladen.
Wens je deze automatisch telkens je acad start?
Dan moet je hem toevoegen bij Contents (staat rechts onderaan in het dialoogboxje  :wink: )

Mvg

Kenny
8) Volvo 4 Life 8)

enne

weet iemand misschien hoe je een spiltrap kan maken die verplaatstbaar is, zodat deze niet in de grond bevestigd moet worden?