Aller au contenu

Ajuster avec dimension


jalna

Messages recommandés

Bonjour,

Il me vient une idée sur une commande AutoCAD,

Comme je fais souvent du relevé et que je retranscris mes dimensions prises sur le terrain, j'utilise principalement des droites et des décalements de droites.

Quand je prend le relevé d'une porte par exemple je la cote depuis un mur, je me retrouve avec 2 dimensions (dimension prise aussi de l'autre coté du mur) il est sur que je ne vais pas me trouver avec une dimension type (genre 70,80,90,100....) je me retrouve souvent avec 72, 81, 93, 102....

Une fois que j'ai ajusté mes droites pour avoir mon trou, je suis obligé de mesurer mon trou avec la commande distance et de faire 2 étiré de chaque coté pour avoir une cote type.

Il serait bien que je connaisse cette distance juste après avoir ajusté, sans avoir besoin de mesurer, je pense à un affichage temporaire ou sur la ligne de commande.

En fait ce qui m’intéresse c'est la distance entre deux points d'ajustement.

Si quelqu'un a une idée, par avance merci.

"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

Certainement pas une bonne idée...........

"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

Salut,

 

Cela me semble assez simple à traiter.

Un truc comme ça par exemple...

 

(defun c:encadrement ( / p1 p2 d1 d2 dx p1p p2p pm)
 (initget 9)
 (setq p1 (getpoint "\nPosition de l'origine de la 1ère mesure?: "))
 (initget 7)
 (setq d1 (getdist p1 "\nDistance mesurée?: "))
 (initget 9)
 (setq p2 (getpoint "\nPosition de l'origine de la 2ème mesure?: "))
 (initget 7)
 (setq d2 (getdist p2 "\nDistance mesurée?: "))
 (initget 6 "70 80 90 100")
 (setq dx (getdist "\nEncadrement de porte de [70/80/90/100]? <90>: "))
 (if (not dx) (setq dx 90))
 (setq
   p1p (polar p1 (angle p1 p2) d1)
   p2p (polar p2 (angle p2 p1) d2)
   pm
   (list
     (* (+ (car p1p) (car p2p)) 0.5)
     (* (+ (cadr p1p) (cadr p2p)) 0.5)
     (* (+ (caddr p1p) (caddr p2p)) 0.5)
   )
 )
 (command "_.line" "_none" p1 "_none" (polar pm (angle p2 p1) (* 0.5 dx)) "")
 (command "_.line" "_none" p2 "_none" (polar pm (angle p1 p2) (* 0.5 dx)) "")
 (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

Salut

Merci de penser à moi

C'est pas tout à fait ça en fait

La le lisp me demande 2 points et une longueur

Malheureusement je ne connais jamais la longueur, c'est une fois que j'ai ajusté que je mesure pour savoir quelle est la longueur, j'aimerais la connaitre lors de l'ajustement

C'est un peu dur à expliquer...

"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

Malheureusement je ne connais jamais la longueur

 

???

 

je la cote depuis un mur, je me retrouve avec 2 dimensions (dimension prise aussi de l'autre coté du mur)

 

Je ne comprends rien à vos énoncés, les gars....

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

Je ne connais jamais la longueur de l'ouverture quand je dessine depuis mon relevé

Je fais toujours mes relevés en cumul....

Par exemple si je prend un mur perpendiculaire à un autre avec une porte dans le mur je mesure 225-325-500(500 fin de mon mur)

il est assez simple de voir que la porte va faire 100 de large (225-325) mais si j'ai 226-313-500 je ne vais pas savoir quel va être la dimension de ma porte à moins de prendre ma calculette (ou de mesurer) et de faire 313-226 soit 87(cote que je passerais ensuite à 90 en étirant 1.5 de chaque coté afin d'avoir une cohérence avec mon relevé) et c'est les 87 que j'aimerais voir lors de mon ajusté (cela m'évite de mesurer ou de prendre ma calculette)

 

Suis-je plus clair

"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

Ce que j'avais compris

(dimension prise aussi de l'autre coté du mur)

c'est que l'origine de la seconde mesure était prise à l'opposée.

 

Je pense avoir enfin compris l'énoncé, (la démarche dans le lisp serait semblable) le seul point qui me gêne c'est comment tu défini l'orientation de tes mesures: tu t'appuies sur une ligne existante et cette ligne serait coupée à tes mesures intermédiaires (après correction)?

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

Salut

Souvent je fais des droites décalées que j'ajuste par la suite

Ou des cercles ou j'ajoute des lignes que j'ajuste par la suite

Oui la démarche serait semblable

"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

Non je ne pense pas qu'un bloc dyn soit de circonstance....

"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

je mesure 225-325-500(500 fin de mon mur)

 

Donc en sélectionnant un ligne de base (qui sera le mur) et ces 3 distances successives, est ce que ceci te semblerait correct?

 

(defun c:cut_door ( / js ent dxf_ent dxf_10 dxf_11 alpha d1 tmp_10 tmp_11 d2 df k dx p1 p2 pm)
 (princ "\nChoix de la ligne à couper: ")
 (while (not (setq js (ssget "_+.:E:S" '((0 . "LINE"))))))
 (setq
   ent (ssname js 0)
   dxf_ent (entget ent)
   dxf_10 (trans (cdr (assoc 10 dxf_ent)) 0 1)
   dxf_11 (trans (cdr (assoc 11 dxf_ent)) 0 1)
   alpha (angle dxf_10 dxf_11)
   d1 "Origine"
   tmp_10 dxf_10
   tmp_11 dxf_11
 )
 (while (eq d1 "Origine")
   (initget 7 "Origine")
   (setq d1 (getdist dxf_10 "\nDistance du 1er encadrement de porte ou changer [Origine] mesure ?: "))
   (if (eq d1 "Origine")
     (setq
       dxf_10 tmp_11 dxf_11 tmp_10 alpha (angle dxf_10 dxf_11)
       tmp_10 dxf_10 tmp_11 dxf_11
     )
   )
 )
 (initget 7)
 (setq d2 (getdist dxf_10 "\nDistance du 2ème encadrement de porte?: "))
 (initget 7)
 (setq
   df (getdist dxf_10 "\nDistance finale au mur opposé?: ")
   k (/ df (distance dxf_10 dxf_11))
 )
 (initget 6 "70 80 90 100")
 (setq dx (getdist "\nLargeur d'encadrement de porte de [70/80/90/100]? <90>: "))
 (if (not dx) (setq dx 90))
 (setq
   p1 (polar dxf_10 alpha (* d1 k))
   p2 (polar dxf_10 alpha (* d2 k))
   pm
   (list
     (* (+ (car p1) (car p2)) 0.5)
     (* (+ (cadr p1) (cadr p2)) 0.5)
     (* (+ (caddr p1) (caddr p2)) 0.5)
   )
 )
 (entmake
   (list
     '(0 . "LINE")
     '(100 . "AcDbEntity")
     (assoc 8 dxf_ent)
     '(100 . "AcDbLine")
     (cons 10 (trans dxf_10 1 0))
     (cons 11 (trans (polar pm (+ alpha pi) (* 0.5 dx)) 1 0))
     '(210 0.0 0.0 1.0)
   )
 )
 (entmake
   (list
     '(0 . "LINE")
     '(100 . "AcDbEntity")
     (assoc 8 dxf_ent)
     '(100 . "AcDbLine")
     (cons 10 (trans (polar pm alpha (* 0.5 dx)) 1 0))
     (cons 11 (trans dxf_11 1 0))
     '(210 0.0 0.0 1.0)
   )
 )
 (entdel ent)
 (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

Salut et merci

Je fais l'éssai sur une ligne de300cm

Distance du 1er encadrement de porte ou changer [Origine] mesure ?: 100

Distance du 2ème encadrement de porte?:200

Distance finale au mur opposé?: 300

Largeur d'encadrement de porte de [70/80/90/100]? 100

Ca fonctionne

il serait bien de positionner des lignes perpendiculaire au passage créé (en lui renseignant la distance) serait top

Merci beaucoup il faut que je le pratique pour pouvoir en dire plus....

Mais cela m'a l'air pas mal

"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

il serait bien de positionner des lignes perpendiculaire au passage créé (en lui renseignant la distance) serait top

 

Souvent je fais des droites décalées

Donc en s'appuyant sur la variable, tu pourrais rajouter ceci (avant (entdel ent)):

 

 (entmake
   (list
     '(0 . "LINE")
     '(100 . "AcDbEntity")
     (assoc 8 dxf_ent)
     '(100 . "AcDbLine")
     (cons 10 (trans (polar pm (+ alpha pi) (* 0.5 dx)) 1 0))
     (cons 11 (trans (polar (polar pm (+ alpha pi) (* 0.5 dx)) (+ alpha (* pi 0.5)) (getvar "OFFSETDIST")) 1 0))
     '(210 0.0 0.0 1.0)
   )
 )
 (entmake
   (list
     '(0 . "LINE")
     '(100 . "AcDbEntity")
     (assoc 8 dxf_ent)
     '(100 . "AcDbLine")
     (cons 10 (trans (polar pm alpha (* 0.5 dx)) 1 0))
     (cons 11 (trans (polar (polar pm alpha (* 0.5 dx)) (+ alpha (* pi 0.5)) (getvar "OFFSETDIST")) 1 0))
     '(210 0.0 0.0 1.0)
   )
 )

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

Super!!

Ça commence à être pas mal du tout.......

Merci

"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

Salut

En réfléchissant (ca m'arrive) je pense que le lisp ne correspond pas tout à fait, car avec le recul je m’aperçois que je dois rentrer la largeur de la porte voulu

[70/80/90/100]?

Alors que cette valeur quand je dessine depuis mon relevé je ne la connais pas, je ne sais pas encore si cela va être 70/80......

Je reviens donc à dire qu'il ne faudrait qu'il me demande la largeur mais qu'il indique en visuel la dimension créée

Cela peut se faire sur la ligne de commande du style "largeur créée : 105" et la je sais qu'il faudra que j'étire de chaque coté de 2.5 pour avoir 100.

Tout est clair comme le temps.................................................

"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

On peut lui faire afficher la valeur approchante par défaut.

 

Remplace

 (setq
   df (getdist dxf_10 "\nDistance finale au mur opposé?: ")
   k (/ df (distance dxf_10 dxf_11))
 )
 (initget 6 "70 80 90 100")
 (setq dx (getdist "\nLargeur d'encadrement de porte de [70/80/90/100]? <90>: "))
 (if (not dx) (setq dx 90))

 

Par

 (setq
   df (getdist dxf_10 "\nDistance finale au mur opposé?: ")
   k (/ df (distance dxf_10 dxf_11))
   val_default (* (fix (* (- d2 d1) 0.1)) 10)
 )
 (initget 6 "70 80 90 100")
 (setq dx (getdist (strcat "\nLargeur d'encadrement de porte de [70/80/90/100]? <" (itoa val_default) ">: ")))
 (if (not dx) (setq dx val_default))

 

Rajouter la variable val_default en déclaration de variable locale, c'est mieux

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

Rajouter la variable val_default en déclaration de variable locale, c'est mieux

 

Salut

Super rapide..............

Tu peux m'en dire plus stp

C'est ce que je veux en tous cas maintenant je connais le percement créé

Par contre il est arrondi c'est du à la variable ??

Excuse moi pour mon incompétence en la matiere

"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

En même temps la routine est géniale......

Si les personnes faisant du relevé la découvre ils vont être super content

 

Un grand merci Monsieur......................

"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

Tu peux m'en dire plus stp

 

Rajouter la variable val_default en déclaration de variable locale:

 

C'est les variables déclarées ici (après defun)

(defun c:cut_door ( / [b]js ent dxf_ent dxf_10 dxf_11 alpha d1 tmp_10 tmp_11 d2 df k val_default dx p1 p2 pm[/b])

 

Ceci permet de remettre les variables déclarées à nil à la fin de l’exécution du programme, autrement elles conservent leur dernières valeurs acquises. Cela peut interféré lors d'une exécution ultérieure ou un autre programme lisp qui aurait (pur hasard) une variable du même nom. En plus cela libère de la mémoire, surtout pour des variables qui serait des listes de taille imposante.

 

L'arrondi à 10 près est calculé avec (* (fix (* (- d2 d1) 0.1)) 10)

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

L'arrondi à 10 près est calculé avec (* (fix (* (- d2 d1) 0.1)) 10)

Ok mais quelle est la valeur à changer pour avoir un arrondi à 5 unité pres (c'est pas le 10??)

"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

Bonjour,

Ok mais quelle est la valeur à changer pour avoir un arrondi à 5 unité pres (c'est pas le 10??)

 

Oui à ceci près que le 0.1 (1/10) devient 0.2 (1/5), petit rappel :

 

Pour arrondir un nombre positif à la précision voulue par défaut,

On divise le nombre par la précision souhaité (pour en connaitre le nombre de part)

Puis on garde la partie entière (avec la fonction fix) que l’on multiplie par la précision voulue..

Dans ton cas (* (fix (/ (- d2 d1) 5)) 5) avec d2>d1

 

Pour arrondir un nombre positif à la précision voulue,

Il suffit d’ajouter 0.5 au résultat de la division du nombre par sa précision.

Dans ton cas on obtient (* (fix (+ (/ (- d2 d1) 5) 0.5)) 5) avec d2>d1

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Salut

Merci du rappel

Ça fonctionne

"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é