Aller au contenu

Sens de construction polyligne


Messages recommandés

Posté(e)

Bonjour,

Je cherche à inverser sens de construction d'une polyligne

@+

Le Hamac est une science exacte qui ne tolère pas l'amateurisme.

Posté(e)

Salut,

 

Copie le code suivant dans un fichier lisp (extension .lsp), charge le et exécute la commande INVSENS. J'ai fait des tests, ça a l'air de gazer... Mais à confirmer !

 

Précision : ça marche sur les LWPOLYLINE et ya pas de test sur l'entité que tu sélectionnes : gaffe à la gamelle !

 

A+

 

 

(defun c:invsens()

(if (null (setq v1 (car (entsel))))

(exit)

)

(command "annuler" "m")

; parcours pour récupérer les points

(setq v2 (entget v1) v3 nil v4 nil)

(foreach v5 v2

(if (= (car v5) 10) ; point

(setq v3 (append v3 (list v5)))

(if (= (car v5) 42) ; rayon de courbure

(setq v4 (append v4 (list (cons 42 (* -1.0 (cdr v5))))))

)

)

)

; inversion

(setq v3 (reverse v3) v4 (reverse v4))

; bidouille pour remettre dans le bon ordre les rayons de courbure

(setq v9 (car v4) v4 (append (cdr v4) (list v9)))

(setq v6 nil v7 0)

(foreach v5 v2

(if (= (car v5) 10)

(setq v6 (append v6 (list (nth v7 v3))))

(if (= (car v5) 42)

(setq v6 (append v6 (list (nth v7 v4))) v7 (1+ v7))

(setq v6 (append v6 (list v5)))

)

)

)

(entmake v6)

(entdel v1)

(command "annuler" "f")

(princ)

)

Posté(e)

Salut MNT

 

Pas de quoi, j'adore le lisp et le problème était intéressant...

 

Si ça t'intéresse, on peut l'améliorer, faire boucler la commande, la faire tourner sur un jeu de sélection ou un calque. Si ça t'intéresse, fais me le savoir.

 

A+

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é