Aller au contenu

Comment faire pour dessiner un escalier


jifi

Messages recommandés

Salut,

 

Dans le cadre du cours AutoCAD que je suis entrain de préparer, j'aimerais intégrer le dessin d'un escalier.

 

N'étant pas dessinateur en bâtiment, j'ignore les méthodes et les règles à respecter.

 

Quequ'un pourrait-il me renseigner sur les différentes méthodes à adopter.

 

Existe-t-il des documents sur le web ?

 

Merci d'avance

 

A+

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je n'ai pas beaucoup de temps aujourd'hui, mais voici quelques" règles" d'usage :

 

Sur la ligne de foulée (au milieu de l'emmarchement en général) le giron (distance en plan d'un nez de marche à l'aplomb du nez suivant) est régulier.

 

Pour le rapport entre giron (G) et hauteur (H) suivant les auteurs :

 

410 mm

ou

600 mm

 

Les valeurs inférieures sont choisies pour les escaliers dits "de service" les supérieures pour les grands escaliers plus confortables, les hauteurs de marches n'excédant généralement pas un maximum de 200 mm pour les premiers et un minimum de 150 pour les seconds.

 

Ce ne sont que des "règles", et il en existe sûrement d'autres, que les circonstances amènent parfois à transgresser.

 

Pour les escaliers balancés le tracé se fait par la jonction des points représentants les girons réguliers sur la ligne de foulée avec ceux placés sur une parallèle à cette ligne (contre un limon) divisée suivant une progression arithmétique qui d'inverse au niveau de la marche servant au réglage du balancement. On le trace traditionnellement par la méthode du trapèze de proportion.

 

Je suis en train de peaufiner un petit LISP pour faire cette division, le voici dans son état actuel (nouvelle version):

 

;;; Balancement - Gilles Chanteau 10/09/05
;;;
;;; Application de la méthode graphique dite du trapèze de proportions.
;;;
;;; Place des points espacés suivant deux progression arthmétiques inversées sur une
;;; polyligne, arc ou spline (une parallèle de la ligne de foulée) en fonction :
;;; - de la distance entre le début et la fin de la partie de l'objet à diviser
;;;  (de la première marche balancée à la dernière)
;;; - d'une largeur définie (le giron moyen)
;;; - du nombre de divisions (le nombre de marches a balancer) de part et d'autre
;;;   du point d'inversion.
;;; Le point d'inversion est spécifiez par l'utilisateur ou calculé automatiquement
;;; en proportion du nombre de marches balancées de part et d'autre de ce point.


(vl-load-com)

;;; bal_err Redéfinition de *error*

(defun bal_err (msg)
 (if (or
(= msg "Fonction annulée")
(= msg "quitter / sortir abandon")
     )
   (princ)
   (princ (strcat "\nErreur: " msg))
 )
 (vla-endundomark AcDoc)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

;;; Fonction principale

(defun c:balancement
	     (/	     AcDoc  ModSp  obj	  pt1	 pt2	gir
	      nb1    nb2    dist1  dist2  rais1	 rais2	count
	      d_pt1  d_pt2  pt_inv d_pti
	     )
 (setq	AcDoc	(vla-get-ActiveDocument (vlax-get-acad-object))
ModSp	(vla-get-ModelSpace AcDoc)
m:err	*error*
*error*	bal_err
 )
 (vla-StartUndoMark AcDoc)
 ;; Entrées utilisateurs
 (while
   (or
     (not obj)
     (not
(member
  (vla-get-ObjectName (setq obj (vlax-ename->vla-object obj)))
  (list	"AcDbArc" "AcDbPolyline" "AcDbSpline" "AcDbEllipse")
)
     )
   )
    (setq obj (car
	 (entsel
	   "\nSélectionnez le segment à diviser: "
	 )
       )
    )
 )
 (while
   (not
     (setq
d_pt1 (vlax-curve-getDistAtPoint
	obj
	(setq
	  pt1 (getpoint "\nPoint de départ du balancement: ")
	)
      )
     )
   )
 )
 (initget 7)
 (setq	nb1
 (getint
   "\nNombre de marches jusqu'au point d'inversion: "
 )
 )
 (while (not
   (setq d_pt2 (vlax-curve-getDistAtPoint
		 obj
		 (setq
		   pt2 (getpoint "\nPoint de fin du balancement: ")
		 )
	       )
   )
 )
 )
 (if (equal pt1 pt2)
   (progn
     (princ
"\nErreur: Le point de départ et le point de fin ne peuvent être confondus."
     )
     (exit)
   )
 )
 (initget 7)
 (setq
   nb2	(getint
  "\nNombre de marches depuis le point d'inversion: "
)
 )
 (initget 7)
 (setq gir (getdist "\nGiron moyen: "))
 ;; Redéfinition des variables suivant le sens de création de l'objet à diviser
 (if (    (setq temp	pt1
  pt1	pt2
  pt2	temp
  temp	d_pt1
  d_pt1	d_pt2
  d_pt2	temp
  temp	nb1
  nb1	nb2
  nb2	temp
  temp	nil
   )
 )
 ;; Positionnement du point d'inversion (spécifié par l'utilisateur ou
 ;; calculé proportionnellement au nombres de marches spécifiés)
 (if
   (setq
     pt_inv (getpoint
       "\nPoint d'inversion du balancement ou : "
     )
   )
    (while (not (setq d_pti (vlax-curve-getDistAtPoint obj pt_inv)))
      (setq pt_inv
      (getpoint
	"\nLe point doit être situé sur l'objet à diviser.\nEssayez encore: "
      )
      )
    )
    (setq pt_inv
	  (vlax-curve-getPointAtDist
	    obj
	    (+ d_pt1 (* (/ (float nb1) (+ nb1 nb2)) (- d_pt2 d_pt1)))
	  )
   d_pti  (vlax-curve-getDistAtPoint obj pt_inv)
    )
 )
 ;; Calculs des longueurs à diviser et des raisons respectives
 (setq	dist1 (- d_pti d_pt1)
dist2 (- d_pt2 d_pti)
 )
 (if (or (	  (      )
   (progn
     (princ
"\nErreur: Disproportion dans les données."
     )
     (exit)
   )
 )
 (setq	rais1 (/ (- gir (/ (+ gir dist1) (1+ nb1))) (/ nb1 2.0))
rais2 (/ (- gir (/ (+ gir dist2) (1+ nb2))) (/ nb2 2.0))
count 0

 )
 ;; Création des points
 (vla-addPoint
   ModSp
   (vlax-3d-point pt1)
 )
 (repeat nb1
   (setq count	(1+ count)
  d_pt1	(+ d_pt1 (- gir (* count rais1)))
   )
   (vla-addPoint
     ModSp
     (vlax-3d-point (vlax-curve-getPointAtDist obj d_pt1))
   )
 )
 (setq count nb2)
 (repeat count
   (setq d_pt1 (+ d_pt1 (- gir (* count rais2))))
   (vla-addPoint
     ModSp
     (vlax-3d-point (vlax-curve-getPointAtDist obj d_pt1))
   )
   (setq count (1- count))
 )
 (vla-EndUndoMark AcDoc)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

Suit un petit dessin explicatif.[Edité le 10/9/2005 par (gile)]

 

:exclam: [surligneur]Erratum : [/surligneur]

 

À la place de :

600 mm

Lire : 600 mm [Edité le 12/9/2005 par (gile)][Edité le 29/11/2005 par (gile)]

 

[Edité le 29/11/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Voilà le dessin (nouvelle version):

 

http://img354.imageshack.us/img354/3726/balancement8ej.jpg

 

Encore une fois, il s'agit là d'une méthode plus que d'une "règle", on est la plupart du temps amené à "tricher" la vue en plan pour optimiser le tracé des limons qui en dépend.

 

Petite précision, comme sur cet exemple, on peut donner un peu de progressivité aux premières marches pour le confort (ici les 3 premières)

 

En espérant avoir répondu à ta demande.

 

A plus.

 

[Edité le 10/9/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Bjr ,

 

Autre methode assez simple et efficace ( a l'ancienne ) :

 

Lorsque l emprise au sol de l'escalier est dessinée , copier la ligne de foulee a 10 cm de l interieur de l'escalier . Diviser les 2 lignes de foulee de la largeur de marches souhaitées puis relier les points obtenus entre eux .

 

Et voilouuuuuuuu un beau escalier balancé .

 

Bon week end

 

Will

 

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

À propos du balancement des escaliers, willfrca, en donnant une autre méthode, montre bien qu'il n'y a pas de règles définitives. Chaque méthode a ses défaut et ses qualités et en fin de compte c'est souvent un mélange d'empirisme et de feeling qui met fin aux hésitations.

 

De toutes façons, le résultat du balancement n'apparait pas toujours clairement sur la vue en plan. C'est en traçant les élévations que l'on voit l'incidence du balancement sur les courbes des limons qui, en général doivent suivre celles des nez et des fonds de marche, et c'est souvent là que de manière "dialectique" on retouche l'un et/ou l'autre. le tout bien sûr sans oublier les contraintes de fabrication.

 

Par exemple, la méthode proposée par willfrca (si je l'ai bien comprise), outre le fait qu'elle est plus facile à mettre en oeuvre, présente l'avantage de générer des limons intérieurs quasiment rectilignes (économie de matière), mais ce, à condition que (presque) toutes les marches soient balancées. Si elle est utilisée en continuité d'une série de marches droites elle peut provoquer une "cassure" disgracieuse dans la ligne des limons (à essayer).

 

Celle que je proposais est loin d'être sans défaut. Elle est ancienne aussi, sans le LISP pas très pratique à mettre en oeuvre et ne donne pas toujours des résultats immédiatement satisfaisant. Ce qui me plait dans cette méthode c'est que c'est un bon exemple de résolution graphique.

 

Illustration :

http://img151.imageshack.us/img151/4343/trapprop27cg.jpg

 

Jifi, si tout çà t'inspire d'autres questions, n'hésite pas...

 

[Edité le 10/9/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Pour ne pas rendre ce fil plus long que de raison, j'ai édité mes premiers messages en changeant le LISP pour une version plus aboutie (division de toute la partie balancée en une seule commande et controle des entrées utilisateur) ainsi que le dessin explicatif.

 

Aplus

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Merci à tous,

 

un peu de technique ça fait du bien, ça pourra me servir également pour compléter mon catalogue d' exercices.

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

La suite ...

 

http://img287.imageshack.us/img287/9247/balancement36gq.jpg

 

Après avoir ajouté sur la vue en plan les saillies de nez (recouvrement généralement autour de 40 mm) et l'épaisseur de contre-marches (absentes sur le dessin), le tracé des limons en élévation se fait par rabattement des marches (et contre-marches) auxquelles on donne leurs hauteurs respectives et leur épaisseur.

 

Les rives des limons se tracent en menant une parallèle à la ligne des nez de marches (ou des fonds de marches) à une distance de 40 à 50 mm (le bandeau).

 

C'est là qu'intervient la "bidouille" : en trichant sur le balancement et/ou sur le paraléllisme du bandeau on va pouvoir "optimiser" la ligne des limons soit pour des raisons esthétiques, soit pour des raisons plus triviales. Dans l'exemple du petit dessin, il n'y aurait pas grand chose à modifier pour que les limons intérieurs soient rectilignes (donc leurs mains courantes aussi), ce qui présenterait un intérêt éconmique évident (matière et main d'oeuvre).

 

Je pense que tu peux en tirer un exercice assez complèt, tant du point de vue de l'apprentissage d'AutoCAD que de celui du dessin technique et de la vision dans l'espace tout en faisant appel au sens pratique et esthétique de chacun.

 

A plus.

 

[Edité le 11/9/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour.

 

Répondre sur un forum est une expérience nouvelle pour moi.

Je voulais simplement signaler également la méthode de la herse de balancement souvent pratiquée aussi.

Elle amène à faire les mêmes constats qui sont déjà ennoncés dans les autres réponses.

Il y a souvent besoin de corriger les imperfections (arrivées sur les poteaux) et de vérifier la courbe développée afin de constater qu'il n'y a pas de cassures dans celle-ci.

Toutefois si l'objectif n'est pas la fabrication, cela s'avère suffisant.

Cela me parait un peu long à exposer ici.

J'ai tenté (modestement) de mettre tout cela dans un site, technologie, terminologie, didacticiel, y compris commande vba qui permet de tracer directement un escalier 1/4 tournant balancé en 2D avec ses herse.

Je ne sais pas si j'ai le droit de communiquer cela ici.

Je m'abstiendrais donc, sauf avis contraire.

 

nazemrap.

 

Lien vers le commentaire
Partager sur d’autres sites

Salut nazemrap,

 

Je suis vivement intéressé par la manière dont tu as automatisé une herse de balancement. Je ne connais pas le VBA (si ce n'est à travers le peu que je connais de VisualLISP) mais c'est une bonne occasion d'essayer.

 

En attendant l'adressse de ton site, pour ceux qui ne savent pas ce que c'est, la herse de balancement est une méthode graphique de calcul du balancement des escaliers (comme le trapèze de proportion décrit plus haut). On peut en trouver un exemple ici.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Il y a un lexique du vocabulaire spécifique aux escalier assez exhaustif ici

 

Voilà un LISP qui place les points suivant la méthode de la herse de balancement :

 

Nouvelle version

 

;;; H_BAL place des points déterminant les collets suivant la méthode de la herse de balancement

(vl-load-com)

;;; bal_err Redéfinition de *error*

(defun bal_err (msg)
 (if (or
(= msg "Fonction annulée")
(= msg "quitter / sortir abandon")
     )
   (princ)
   (princ (strcat "\nErreur: " msg))
 )
 (vla-endundomark AcDoc)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

;;; hers_bal Création des points sur un côté

(defun hers_bal	(pt ang col / ptf)
 (setq	l1    (vla-addLine
	ModSp
	(vlax-3d-point pt)
	(vlax-3d-point (polar pt (+ ang (/ pi 2)) 1))
      )
ptf   (vlax-safearray->list
	(vlax-variant-value
	  (vla-IntersectWith obj l1 acExtendOtherEntity)
	)
      )
ptf   (list (car ptf) (cadr ptf) (caddr ptf))
d_pt  (vlax-curve-getDistAtPoint obj ptf)
d_pt0 (vlax-curve-getDistAtPoint obj pt0f)
foul  (abs (- d_pt d_pt0))
dist  (distance pt pt0c)
alpha (atan foul dist)
beta  (- pi (* 2 alpha))
compt 1
 )
 (while (    (setq alpha	(atan (* compt gir) dist)
  d_pt	(/ dist
	   (+ (/ (* (cos alpha) (sin beta)) (sin alpha)) (cos beta))
	)
  compt	(1+ compt)
   )
   (vla-addPoint ModSp (vlax-3d-point (polar pt ang d_pt)))
   (vla-put-color (vlax-ename->vla-object (entlast)) col)
 )
 (vla-delete l1)
)

;;; Fonction principale

(defun c:h_bal (/ AcDoc	 ModSp	obj    d_pt1  pt1f   d_pt0  pt0f
	  pt1c	 pt2c	pt0c   dist   ang    gir    foul
	  alpha	 beta	compt  d_pt   l0     l1
	 )
 (setq	AcDoc	(vla-get-ActiveDocument (vlax-get-acad-object))
ModSp	(vla-get-ModelSpace AcDoc)
m:err	*error*
*error*	bal_err
 )
 (vla-StartUndoMark AcDoc)
 ;; Entrées utilisateurs
 (while
   (or
     (not obj)
     (not
(member
  (vla-get-ObjectName (setq obj (vlax-ename->vla-object obj)))
  (list	"AcDbArc" "AcDbLine" "AcDbPolyline" "AcDbSpline"
	"AcDbEllipse")
)
     )
   )
    (setq obj (car
	 (entsel
	   "\nSélectionnez la ligne de foulée: "
	 )
       )
    )
 )
 (initget 1)
 (setq pt1c (getpoint "\nPoint au premier collet balancé: "))
 (initget 1)
 (setq pt0c (getpoint pt1c "\nPoint à l'angle des limons: "))
 (initget 1)
 (setq pt2c (getpoint pt0c "\nPoint au dernier collet balancé: "))
 (initget 7)
 (setq gir (getdist "\nSpécifiez le giron: "))
 ;; Calculs
 (foreach pt '(pt1c pt2c pt0c)
   (set pt (trans (eval pt) 1 0))
 )
 (setq	ang1 (angle pt1c pt0c)
ang2 (angle pt2c pt0c)
bis  (/ (+ ang1 ang2) 2.0)
l0   (vla-addLine
       ModSp
       (vlax-3d-point pt0c)
       (vlax-3d-point (polar pt0c bis 1))
     )
pt0f (vlax-safearray->list
       (vlax-variant-value
	 (vla-IntersectWith obj l0 acExtendOtherEntity)
       )
     )
 )
 (cond
   ((equal ang1 ang2 1e-009)
    (cond
      ((equal pt1c pt2c 1e-009)
(hers_bal pt1c ang1 256)
      )
      (T
(hers_bal pt1c ang1 1)
(hers_bal pt2c ang2 3)
      )
    )
   )
   (T
    (hers_bal pt1c ang1 256)
    (hers_bal pt2c ang2 256)
   )
 )
 (vla-delete l0)
 (vla-EndUndoMark AcDoc)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

Avec son petit dessin explicatif :

http://img83.imageshack.us/img83/5582/hbal8pz.jpg.

À plus ...[Edité le 27/9/2005 par (gile)][Edité le 30/11/2005 par (gile)]

 

[Edité le 1/12/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé ta macro.

 

Escalier_quart_tournant fonctionne très bien et trace un escalier bien mieux balancé que sur certains plans d'archi. Juste une petite remarque, tu devrais pouvoir limiter le nombre de décimales affichées dans les champs "hauteur de marche" "Longueur de giron" et "Valeur du pas" pour une meilleure lisibilité (mais c'est vraiment un détail !)

 

Bravo !

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonsoir à tous

 

j' ai essayé le programme de (Gile) le premier mais étrangement il refuse le point de depart du balancement qu 'il me demande !?

 

j 'ai beau cliquer sur un point, il repose la question

Si je valide " Erreur: type d'argument incorrect: point 2D/3D: nil "

peut-être un problème de copier coller ??

merci de votre aide

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut Esbe,

 

D'abord, merci d'essayer mes LISP et de m'en dire les dysfonctionnements, çà me permet de réparer les défauts que je n'avais pas vus.

 

Les points que tu spécifies (point de départ et point de fin du balancement), doivent se trouver sur la polyligne que tu as d'abord sélectionnée (objet à diviser sur le petit dessin), est-ce bien le cas ?

 

Sinon, ce LISP sert plutôt si les limons intérieurs ne sont pas droits ou se raccordent sur un "noyau" courbe (comme sur le petit dessin), pour les limons se raccordant en angle, il est plus pratique d'utiliser le deuxième LISP (utilisant la méthode de la herse de balancement).

 

PS : Je corrige une imperfection dans le filtre de sélection de l'objet à diviser, ce ne peut être une ligne.

 

[Edité le 29/11/2005 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité