Aller au contenu

jonction de deux droites perpendiculaire


grandss

Messages recommandés

salut

 

j'ai lu je ne sais plus ou (ici peut-etre mais je n'ai pas retrouvé le post) qu'il etait possible de joindre deux lignes perpendiculaire en evitant de faire :

 

etirer une ligne plus loin que le point de l'intersection

etirer l'autre ligne sur la premiere

ajuster la premiere ligne

 

merci

Modeler Revit MEP - Référent BIM

Revit MEP - Navisworks - Magicad

Autocad MEP 2018 (mais plus beaucoup)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Il y a plusieurs méthodes:

 

Commande RACCORD avec un rayon a 0.0

Avec les grips et l'accroche-objet mis à intersection projetée.

 

Et peut être d'autres qui ne me sont pas venue à l'esprit.

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 grandss

 

Essaies ceci si ça te convient

 

Permet de faire des perpendiculaires par rapport d'un point ou une ligne selectionnee.

(defun c:perp (/ erreur ent dep ang loop per gr pe str)

 

 (defun erreur (msg)
(if (= msg "Fonction annulée")
(princ "\n*Annuler*")
(princ (strcat "\nErreur: " msg))
)
(and per (entdel per))
(setq *error* m:err
m:err nil
)
)

(setq m:err *error*
*error* erreur
)
(if (and
(setq ent (car (entsel "\nSélectionnez la ligne: ")))
(= (cdr (assoc 0 (entget ent))) "LINE")
(setq dep (getpoint "\nPoint de départ de la perpendiculaire :"))
)
(progn
(entmake (list '(0 . "LINE")
(cons 10 (trans dep 1 0))
(cons 11 (trans dep 1 0))
)
)
(setq per (entlast)
ang (angle (cdr (assoc 10 (entget ent)))
(cdr (assoc 11 (entget ent)))
)
loop T

)
(princ "\nSpécifiez la longueur: ")
(while (and (setq gr (grread T 12 0)) (/= (car gr) 3) loop)
(cond
((= (car gr) 5)
(setq
pe (polar
dep
(if (minusp (sin (- (angle dep (cadr gr)) ang)))
(- ang (/ pi 2))
(+ ang (/ pi 2))
)
(distance dep (cadr gr))
)
)
(entmod
(subst (cons 11 (trans pe 1 0))
(assoc 11 (entget per))
(entget per)
)
)
(grtext -1 (rtos (distance dep (cadr gr))))
)
((member (cadr gr) '(13 32))
(if (and str (numberp (read str)))
(progn
(entmod
(subst
(cons
11
(trans (polar dep (angle dep pe) (distof str)) 1 0)
)
(assoc 11 (entget per))
(entget per)
)
)
(setq loop nil)
)
(progn
(princ
"\nNécessite un nombre valide ou une saisie au pointeur.
\nSpécifiez la longueur: "
)
(setq str "")
)
)
)
(T
(if (= (cadr gr) 8)
(or
(and str
(/= str "")
(setq str (substr str 1 (1- (strlen str))))
(princ (chr 8))
(princ (chr 32))
)
(setq str nil)
)
(or
(and str (setq str (strcat str (chr (cadr gr)))))
(setq str (chr (cadr gr)))
)
)
(and str (princ (chr (cadr gr))))
)
)
)
)
)
(setq *error* m:err
m:err nil
)
(princ)
) 

 

Merci à son auteur (trouvé sur le site).

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut grandss

 

Essaies ceci si ça te convient

 

 Permet de faire des perpendiculaires par rapport d'un point ou une ligne selectionnee.
(defun c:perp (/ erreur ent dep ang loop per gr pe str)

[code] (defun erreur (msg)
(if (= msg "Fonction annulée")
(princ "\n*Annuler*")
(princ (strcat "\nErreur: " msg))
)
(and per (entdel per))
(setq *error* m:err
m:err nil
)
)

(setq m:err *error*
*error* erreur
)
(if (and
(setq ent (car (entsel "\nSélectionnez la ligne: ")))
(= (cdr (assoc 0 (entget ent))) "LINE")
(setq dep (getpoint "\nPoint de départ de la perpendiculaire :"))
)
(progn
(entmake (list '(0 . "LINE")
(cons 10 (trans dep 1 0))
(cons 11 (trans dep 1 0))
)
)
(setq per (entlast)
ang (angle (cdr (assoc 10 (entget ent)))
(cdr (assoc 11 (entget ent)))
)
loop T

)
(princ "\nSpécifiez la longueur: ")
(while (and (setq gr (grread T 12 0)) (/= (car gr) 3) loop)
(cond
((= (car gr) 5)
(setq
pe (polar
dep
(if (minusp (sin (- (angle dep (cadr gr)) ang)))
(- ang (/ pi 2))
(+ ang (/ pi 2))
)
(distance dep (cadr gr))
)
)
(entmod
(subst (cons 11 (trans pe 1 0))
(assoc 11 (entget per))
(entget per)
)
)
(grtext -1 (rtos (distance dep (cadr gr))))
)
((member (cadr gr) '(13 32))
(if (and str (numberp (read str)))
(progn
(entmod
(subst
(cons
11
(trans (polar dep (angle dep pe) (distof str)) 1 0)
)
(assoc 11 (entget per))
(entget per)
)
)
(setq loop nil)
)
(progn
(princ
"\nNécessite un nombre valide ou une saisie au pointeur.
\nSpécifiez la longueur: "
)
(setq str "")
)
)
)
(T
(if (= (cadr gr) 8)
(or
(and str
(/= str "")
(setq str (substr str 1 (1- (strlen str))))
(princ (chr 8))
(princ (chr 32))
)
(setq str nil)
)
(or
(and str (setq str (strcat str (chr (cadr gr)))))
(setq str (chr (cadr gr)))
)
)
(and str (princ (chr (cadr gr))))
)
)
)
)
)
(setq *error* m:err
m:err nil
)
(princ)

) [/code]

 

Merci à son auteur (trouvé sur le site).

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je pense que ça fonctionne avec 2006 : commande RACCORD avec la touche MAJ (SHIFT) enfoncée fait un raccord de rayon 0.0

 

voila ce que j'avais oublié.

 

Merci

Modeler Revit MEP - Référent BIM

Revit MEP - Navisworks - Magicad

Autocad MEP 2018 (mais plus beaucoup)

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Permet de faire des perpendiculaires par rapport d'un point ou une ligne selectionnee.

 

 (defun c:perp (/ erreur ent dep ang loop per gr pe str)

(defun erreur (msg)
(if (= msg "Fonction annulée")
(princ "\n*Annuler*")
(princ (strcat "\nErreur: " msg))
)
(and per (entdel per))
(setq *error* m:err
m:err nil
)
)

(setq m:err *error*
*error* erreur
)
(if (and
(setq ent (car (entsel "\nSélectionnez la ligne: ")))
(= (cdr (assoc 0 (entget ent))) "LINE")
(setq dep (getpoint "\nPoint de départ de la perpendiculaire :"))
)
(progn
(entmake (list '(0 . "LINE")
(cons 10 (trans dep 1 0))
(cons 11 (trans dep 1 0))
)
)
(setq per (entlast)
ang (angle (cdr (assoc 10 (entget ent)))
(cdr (assoc 11 (entget ent)))
)
loop T

)
(princ "\nSpécifiez la longueur: ")
(while (and (setq gr (grread T 12 0)) (/= (car gr) 3) loop)
(cond
((= (car gr) 5)
(setq
pe (polar
dep
(if (minusp (sin (- (angle dep (cadr gr)) ang)))
(- ang (/ pi 2))
(+ ang (/ pi 2))
)
(distance dep (cadr gr))
)
)
(entmod
(subst (cons 11 (trans pe 1 0))
(assoc 11 (entget per))
(entget per)
)
)
(grtext -1 (rtos (distance dep (cadr gr))))
)
((member (cadr gr) '(13 32))
(if (and str (numberp (read str)))
(progn
(entmod
(subst
(cons
11
(trans (polar dep (angle dep pe) (distof str)) 1 0)
)
(assoc 11 (entget per))
(entget per)
)
)
(setq loop nil)
)
(progn
(princ
"\nNécessite un nombre valide ou une saisie au pointeur.
\nSpécifiez la longueur: "
)
(setq str "")
)
)
)
(T
(if (= (cadr gr) 8)
(or
(and str
(/= str "")
(setq str (substr str 1 (1- (strlen str))))
(princ (chr 8))
(princ (chr 32))
)
(setq str nil)
)
(or
(and str (setq str (strcat str (chr (cadr gr)))))
(setq str (chr (cadr gr)))
)
)
(and str (princ (chr (cadr gr))))
)
)
)
)
)
(setq *error* m:err
m:err nil
)
(princ)
) 

 

Voila la "bonne version"!

 

Merci gile

 

@+

Lien vers le commentaire
Partager sur d’autres sites

  • 11 ans après...

Bonjour,

 

je suis novice comme vous le comprendrez au travers de ma question comment utilise t on ces lignes de commande?

j'ai essayé de les coller dans ma fenêtre de commande mais sans résultat, je suppose donc que je ne sais pas les utiliser correctement.

 

quelqu'un pourrait il m'expliquer comment faire dans un langage de personne débutante

 

merci pour votre aide

bonne soirée

val

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é