Aller au contenu

Dessiner une pente en pourcentage


FormaBois

Messages recommandés

Bonjour,

n'ayant pas trouvé je pose la question ici

Existe-t-il une fonction ou une routine pour faire la même chose que le mode polaire, pas avec des degrés mais avec des pourcentage ?

Fonction utile pour tracer des pentes de toiture qui sont souvent exprimé en pourcentage

Studio Gfilm - Agence de communication par l'image

 

"Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

est-ce que tu veux dessiner en 3D ? ou bien une pente sur une vue en élévation ?

 

 

pour la 3D penser lisp (trois/quatre lignes de code).

 

pour dessiner sur une élévation utiliser les coordonnées relatives

par exemple une pente de 10% sur un décalage de 1 mètre répondre

 

LIGNE Spécifiez le premier point: point de départ

Spécifiez le point suivant ou [annUler]: 1,-0.10

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Formabois,

2 solutions :

ou tu te mets au lisp

ou tu utilises des solution simple

 

on gagne souvent du temps à utiliser des solutions simples!! ;)

 

Phil

 

PS : Sinon ya peut être quelque chose çà faire avec les grades (si tu utilises ce type d'unité sur ton fichier)

il te suffira d'être en coordonées polaire et d'indiquer ta pente divisée par 2 en guise angle

pour avoir fait une formation lisp ya peu c'est pas très compliqué à faire (je pense)

good luck

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

PS : Sinon ya peut être quelque chose çà faire avec les grades (si tu utilises ce type d'unité sur ton fichier)

il te suffira d'être en coordonées polaire et d'indiquer ta pente divisée par 2 en guise angle

 

Attention !

Les grades et les pourcentages ce n'est pas du tout la même chose.

Une pente exprimée en pourcentage correspond à la tangente de l'angle (quelle que soit l'unité angulaire utilisée pour exprimer l'angle).

 

Une pente à 100% correspond à un angle de 45 degrés, soit 50 grades ou encore Pi/4 radians.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouvé comment faire.

Au début j'ai essayé avec une seule ligne (en essayant de combiner différence Y et différence X dans la division) mais hélas, ca ne fonctionne pas a priori.

Par contre, si je dessine deux lignes, la verticale et l'horizontale, j'arrive à faire un champ avec formule imbriquant deux champs ! Je prends cette fois-ci la longueur de chacune.

 

Eh oui, c'est possible....

Le but est atteint si tu acceptes de garder le triangle complet !

 

Formule : insérer un champ divisé par un autre pultiplié par 100.

http://data.imagup.com/12/1163395845.jpg

 

http://data.imagup.com/11/1163395928.jpg

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je l'avais certainement déjà donné (un peu ancien), une procédure pour travailler avec des pentes, soit DANS le plan XY, soit AVEC le plan XY.

 

(defun errlsp (ch)
(cond
	((eq ch "Function cancelled") nil)
	((eq ch "quit / exit abort") nil)
	((eq ch "console break") nil)
	(T (princ ch))
)
(setvar "cmdecho" v1)
(setvar "orthomode" v2)
(setvar "osmode" v3)
(setvar "blipmode" v4)
(setvar "snapang" v5)
(setq *error* olderr)
(princ)
)
(defun C:PENTE ( / v1 v2 v3 v4 v5 d_pc flag p_o p_f dlt_x d olderr)
(setq v1 (getvar "cmdecho")
      v2 (getvar "orthomode")
      v3 (getvar "osmode")
      v4 (getvar "blipmode")
      v5 (getvar "snapang")
)
(setvar "cmdecho" 0)
(setvar "orthomode" 0)
(setvar "blipmode" 0)
(setq olderr *error* *error* errlsp)
(initget 1)
(setq d_pc (getreal "\nEntrer la valeur de la pente (rampe) en % ?: "))
(initget 8)
(setq p_o (getpoint "\nPoint de départ : "))
(if (eq p_o ()) (setq p_o (getvar "lastpoint")))
(initget "Dans Avec _In With")
(if (eq (getkword "\nPente [Dans/Avec] le plan XY <Dans>: ") "With")
	(setq flag T)
	(progn
		(setvar "snapang" (atan (/ d_pc 100.0)))
		(setvar "orthomode" 1)
		(setq flag nil)
	)
)
(initget 41)
(setq p_f (getpoint p_o "\nPoint final : "))
(setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384)))
(if flag
	(progn
		(setq dlt_x (sqrt (+ (* (- (car p_o) (car p_f)) (- (car p_o) (car p_f))) (* (- (cadr p_o) (cadr p_f)) (- (cadr p_o) (cadr p_f))))))
		(setq d (* dlt_x (/ (sin (atan (/ d_pc 100.0))) (cos (atan (/ d_pc 100.0))))))
		(setq p_f (list (car p_f) (cadr p_f) (+ (caddr p_o) d)))
		(command "_.line" p_o p_f "")
		
	)
	(progn
		(setq dlt_x (- (car p_f) (car p_o)))
		(setq d (/ dlt_x (cos (atan (/ d_pc 100.0)))))
		(command "_.line" p_o (polar p_o (atan (/ d_pc 100.0)) d) "")
	)
)
(setvar "cmdecho" v1)
(setvar "orthomode" v2)
(setvar "osmode" v3)
(setvar "blipmode" v4)
(setvar "snapang" v5)
(setq *error* olderr)
(prin1)
)

 

Pour l'interrogation d'une pente, tu peux utiliser ceci:

(defun C:ID-PENTE ( / pt_o pt_f dxf_11 dev dev_z)
(initget 8)
(setq pt_o (getpoint "\nSpécifiez le point de départ: "))
(if (null pt_o) (setq pt_o (getvar "lastpoint")))
(cond
	(pt_o
		(initget 41)
		(setq pt_f (getpoint pt_o "\nChoix du point final: "))
		(cond
			(pt_f
				(setq
					dxf_11 (trans (mapcar '(lambda (x / ) (/ x (distance (trans pt_o 1 0) (trans pt_f 1 0)))) (mapcar '- (trans pt_f 1 0) (trans pt_o 1 0))) 0 1 T)
				)
				(if (zerop (car dxf_11))
					(setq dev "infini")
					(setq dev (rtos (* (/ (cadr dxf_11) (car dxf_11)) 100.0) 2 4))
				)
				(if (= (caddr dxf_11) 1.0)
					(setq dev_z "infini")
					(if (zerop (caddr dxf_11))
						(setq dev_z (rtos 0.0 2 4))
						(setq dev_z (rtos (* (sqrt (/ 1.0 (- (/ 1.0 (* (caddr dxf_11) (caddr dxf_11))) 1.0))) 100.0) 2 4))
					)
				)
				(prompt (strcat "\nPente dans le plan XY = " dev " % - Pente avec le plan XY = " dev_z " %"))
				(alert (strcat "Pente dans le plan XY = " dev " % - Pente avec le plan XY = " dev_z " %"))
			)
		)
	)
)
(prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Ouah, les puristes... :blink:

 

Moi je dessine un trait horizontal longueur 100 et une verticale correspondant à la pente %, ensuite je tape C pour clore. Voilà ma base de pente. Après je balance éventuellement mon SCU dessus ou non. Du dessin à l'ancienne quoi, comme avec un compas et une équerre... :mellow: Ceci en trois entrées clavier rapides.

Mais je sais apprécier le travail de fond que vous faites là, sauf que je trouve que certaines fois on complique un peu trop les chose simples. Ou alors je n'ai pas compris.

Après, c'est un avis... ;)

 

Amicalement.

  • Upvote 1

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

@(gile)

tout à fait

je disais qu'en utilisant les grades, si 50 grades = 100% de pente, il suffit de taper un angle qui correspond à la moitié de la pente que l'on désire pour être dans les clous... (en même temps vu que je m'exprime très mal je comprends très bien que tu ais mal interpréter ce que je racontais)

@dinosor :

je trouve que certaines fois on complique un peu trop les chose simples. Ou alors je n'ai pas compris.

+1

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

j'ai aussi un gros doute

il suffit de taper un angle qui correspond à la moitié de la pente

comme le dit (gile) la pente correspond à la tangente, et la tangente n'est pas une fonction linéaire...

 

la preuve, une pente a 50% ne correspond pas à 25gr ni une à 5% avec 2.5gr....

Lien vers le commentaire
Partager sur d’autres sites

je trouve que certaines fois on complique un peu trop les chose simples.

 

Pour moi ce code n'est pas du tout compliqué, je dirais même que c'est du B.A.BA du lisp.

Est-il necessaire? Je t'accorde que non, ta méthode à l'ancienne est tout à fait valable.

 

Ceci en trois entrées clavier rapides.

Ça peut te sembler rapide, mais si tu en as une ribambelle à mettre en place, je pense que je serais plus rapide que toi. ;)

De ton coté tu auras à procéder à des effacements de tes bases, puis à la modification de la longueur de ta pente résultante, soit par "ajuster", "prolonger" ou simplement modiflong.

Si tu veux ta pente AVEC le plan XY, il va certainement falloir que tu fasse des SCU pour ta construction, tout ça fait quand même pas mal de manipulations à mon goût.

 

NB: Dans mon code tu as la possibilité d'entrer simplement la longueur (lors de la demande du deuxième point) si l'élastique est orienté dans la bonne direction.

La seule chose qui peut être perturbante est que seule les pentes dans le 1er et 3ème quadrant (pente opposée) peuvent être mis en place (pour une valeur de pente POSITIVE)

Pour avoir les pentes dans les 2 autres quadrants, il faut donner une valeur NÉGATIVE au pourcentage.

 

Mais bon, je propose, chacun est libre de l'utiliser ou non et de trouver ma proposition incongrue, inadaptée, usine à gaz (cocher l'option)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Avec des champs et sans lisp, j'y suis parvenu les gars mais il faut les 2 lignes ortho !

Dommage que je n'ai pas réussi avec la ligne penchée, car ca aurait mis fin à toute discussion B)

Maintenant vous pouvez essayer, sans lisp dans le champ....

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Un exemple de bloc dynamique avec un peu de paramétrique et un attribut pour afficher la pente.

On change la valeur de pente dans la section Personnalisé : PentePourcent, la ligne change de pente et un regen pour mettre à jour l'attribut du champ

Si ça peut servir.

 

Olivier

PenteToit.zip

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Comme tout le monde y va de sa petite solution, personnellement je fais comme Didier à la nuance près que je trace une DROITE (_xline) ou une demi-droite (_ray ), façon planche à dessin c’est très efficace..

 

Donc pour tracer une pente à 6.5% sous autoCAD

Commande: _ray (ou do pour une droite)

Spécifiez le point de départ: (cliquez le point de départ à l’écran)

Entrez une valeur pour "Par le point": @100,6.5 (rapport x/y => valeur de la pente en coordonnées relative)

Entrez une valeur pour "Par le point": (puis entrez pour quitter la commande)

 

(Ps : Mais après avoir testé le lisp de BonusCAD si j’ai un peu de temps je m'essayerai peut être à en écrire un.)

 

Cordialement

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Un exemple de bloc dynamique avec un peu de paramétrique et un attribut pour afficher la pente.

 

Pas mal !

Vous proposez souvent des solutions de construction et non pas de "cotation", comme j'ai fait. Ca me perdra de lire les demandes trop vite.

Modifié par Tramber

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

alors mon truc a moi....

 

puisque tu souhaitais une solution de type accrochage polaire

sachant que l'arc tangente de 0.3 est 16.69°, il suffit de te définir les angles personnalisé qui vont bien

 

en Provence on est toujours à 30% c'est sur que si tu as plusieurs valeurs ça deviens vite le boxon

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Quel élan de partage et de générosité :blink: :D

J'avais effectivement trouvé des sujets sur la cotation des pentes, mais pas sur le traçage.

Jusqu'à maintenant j'utilisais la méthode avec la saisie des coordonnées @100,35 pour une pente de 35%, ensuite un coup de MODIFLONG avec l'option TOtal

C'est vrai que c'est rapide.

Et quelque fois aussi comme x_all l'incrémentation avec le mode polaire, après calcul de la pente en degré

Merci à SteamRoller pour le lien vers le tableau

Mais je me disais qu'il devait bien trainer quelque part une petite routine

Merci Bonuscad ça marche et c'est super rapide

La prochaine fois que je monte dans la capitale de l'Ardèche, j'apporte une petite clairette :P

J'ai testé aussi le bloc dynamique, mais n'ai pas su le faire fonctionner pour la pente

Merci à tous et ... vive Cadxp

Studio Gfilm - Agence de communication par l'image

 

"Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"

Lien vers le commentaire
Partager sur d’autres sites

  • 11 mois après...

Hello,

Je souhaiterai apporter une correction très personnel à ton bout de code BONUSCAD, j'ai regardé un peu, mais je n'arrive pas à le modifier.

 

Je voudrais me passer de l'étape du choix "avec" ou "dans" le plan XY. Dans l'usage que j'en ai, c'est systématiquement "Dans". Même si je garde au chaud le code original qui peut servir.

 

Du coup, en entrée, je ne veux que:

- pente

- point de départ

- point final.

 

Merci.

A plus

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Donc le même épuré...

 

(defun errlsp (ch)
       (cond
               ((eq ch "Function cancelled") nil)
               ((eq ch "quit / exit abort") nil)
               ((eq ch "console break") nil)
               (T (princ ch))
       )
       (setvar "cmdecho" v1)
       (setvar "orthomode" v2)
       (setvar "osmode" v3)
       (setvar "blipmode" v4)
       (setvar "snapang" v5)
       (setq *error* olderr)
       (princ)
)
(defun C:PENTE ( / v1 v2 v3 v4 v5 d_pc p_o p_f dlt_x d olderr)
       (setq v1 (getvar "cmdecho")
             v2 (getvar "orthomode")
             v3 (getvar "osmode")
             v4 (getvar "blipmode")
             v5 (getvar "snapang")
       )
       (setvar "cmdecho" 0)
       (setvar "orthomode" 0)
       (setvar "blipmode" 0)
       (setq olderr *error* *error* errlsp)
       (initget 1)
       (setq d_pc (getreal "\nEntrer la valeur de la pente (rampe) en % ?: "))
       (initget 8)
       (setq p_o (getpoint "\nPoint de départ : "))
       (if (eq p_o ()) (setq p_o (getvar "lastpoint")))
       (setvar "snapang" (atan (/ d_pc 100.0)))
       (setvar "orthomode" 1)
       (initget 41)
       (setq p_f (getpoint p_o "\nPoint final : "))
       (setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384)))
       (setq dlt_x (- (car p_f) (car p_o)))
       (setq d (/ dlt_x (cos (atan (/ d_pc 100.0)))))
       (command "_.line" p_o (polar p_o (atan (/ d_pc 100.0)) d) "")
       (setvar "cmdecho" v1)
       (setvar "orthomode" v2)
       (setvar "osmode" v3)
       (setvar "blipmode" v4)
       (setvar "snapang" v5)
       (setq *error* olderr)
       (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Excellente idée!!

Merci à tous...............

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

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é