Jump to content

jonction de deux droites perpendiculaire


Recommended Posts

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)

Link to post
Share on other 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

Link to post
Share on other 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).

 

@+

Link to post
Share on other 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).

 

@+

Link to post
Share on other sites

salut lesourd2,

 

Deux fois collé, une fois trop court, une fois trop long...

 

Dans ton premier message, il maque la première ligne de code, dans le second, la première ligne n'est ni du code ni un commentaire (précédé d'un point virgule)

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

Link to post
Share on other 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)

Link to post
Share on other 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

 

@+

Link to post
Share on other sites
  • 11 years later...

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...