Aller au contenu

Raccord sans joindre


Messages recommandés

Posté(e)

Salut

 

(defun c:ra(/ code1 code2 ent1 ent2 pt1 pt2 pti)

 (defun err (msg)
   (if (/= msg "Fonction annulée")
     (princ (strcat "\nErreur : " msg))
     (princ msg)
   )
   (if ent1
     (redraw (cdr (assoc -1 ent1)) 4)
   )
   (setq *error* olderr)
   (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
   (princ)
 ) 

 (defun selection(ent pts / code lst pt)
   (cond
     ((eq (cdr (assoc 0 ent)) "LINE")
       (if (< (distance pts (cdr (assoc 10 ent)))
              (distance pts (cdr (assoc 11 ent))))
         (setq code 10)
         (setq code 11)
       )
     )
     ((eq (cdr (assoc 0 ent)) "LWPOLYLINE")
       (setq lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) ent)))
       (if (< (distance pts (last lst)) (distance pts (car lst)))
         (setq code (list (last lst) (cadr (reverse lst))))
         (setq code (list (car lst) (cadr lst)))
       )
     )
   )
   code
 )

 (vl-load-com)
 (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
 (setq olderr *error* *error* err)
 (if (setq ent1 (car (entsel "\nSélectionner la première ligne/polyligne : ")))
   (progn
     (setq ent1 (entget ent1))
     (if (setq code1 (selection ent1 (cadr (grread T))))
       (progn
         (redraw (cdr (assoc -1 ent1)) 3)
         (if (setq ent2 (car (entsel "\nSélectionner la seconde ligne/polyligne : ")))
           (progn
             (setq ent2 (entget ent2))
             (if (setq code2 (selection ent2 (cadr (grread T))))
               (progn
                 (redraw (cdr (assoc -1 ent1)) 4)
                 (if (eq (type code1) 'INT)
                   (setq pt1 (list (cdr (assoc 10 ent1)) (cdr (assoc 11 ent1))))
                   (setq pt1 code1)
                 )
                 (if (eq (type code2) 'INT)
                   (setq pt2 (list (cdr (assoc 10 ent2)) (cdr (assoc 11 ent2))))
                   (setq pt2 code2)
                 )
                 (setq pti (trans (inters (car pt1) (cadr pt1) (car pt2) (cadr pt2) nil) 0 1))
                 (if (eq (type code1) 'INT)
                   (setq ent1 (subst (cons code1 pti) (assoc code1 ent1)    ent1))
                   (setq ent1 (subst (cons 10 pti)    (cons 10 (car code1)) ent1))
                 )
                 (entmod ent1)
                 (if (eq (type code2) 'INT)
                   (setq ent2 (subst (cons code2 pti) (assoc code2 ent2)    ent2))
                   (setq ent2 (subst (cons 10 pti)    (cons 10 (car code2)) ent2))
                 )
                 (entmod ent2)
               )
             )
           )
           (redraw (cdr (assoc -1 ent1)) 4)
         )
       )
     )
   )
 )
 (setq *error* olderr)
 (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

 

Bonsoir

 

Merci / Excellent / Parfait !!! :) :D :cool:

 

Ce soir je fais mes emplettes au marché du Lisp de www.cadxp.com ...

 

Un seul mot : LA CLASSE

 

J'ai testé avec mes polylignes tordues / farfelues déjà utilisées pour tester un autre routine de Bonuscad et ça roule Nickel Chrome :P

 

Le Decapode "bluffé"

 

 

 

Autodesk Expert Elite Team

Posté(e)

Bonsoir

 

Je n'ai pas compris, c'est un raccord sans faire joindre ?

 

On a à l'origine, deux polylignes (non parallèles) et on les raccorde en gardant deux entités polylignes ?

 

MMMmmmm intéressant... À force d'habitude, je vais très vite pour le faire... Mais je le garde... Mes collègues vont surement aprécier... Quand ils auront enfin compris q'une ligne à plusieurs sommets est une polyligne ! !

 

;)

 

Merci Patrick_35...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é