PHILPHIL Posté(e) le 16 mars 2008 Posté(e) le 16 mars 2008 bonjour y a t'il une fonction pour trier une liste de points ( ascendante, descendante )suivant X ou Y ??? finaliter creer un LISP pour ajouter ou retirer des points dans une serie de cotesle truc existe deja dans autocad mais n'est pas terrible terrible bonne soirée merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 16 mars 2008 Posté(e) le 16 mars 2008 Salut, La fonction vl-sort permet ce type de tri. Exemple pour trier une liste de points dans l'ordre des X croissants. (vl-sort pt-lst (function (lambda (p1 p2) ( ) ) ) Exemple pour trier une liste de points dans l'ordre des Y décroissants. (vl-sort pt-lst (function (lambda (p1 p2) (> (cadr p1) (cadr p2)) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 17 mars 2008 Auteur Posté(e) le 17 mars 2008 HELLO ok gile merci reste plus qu'a phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 14 mai 2008 Auteur Posté(e) le 14 mai 2008 hello gile j'ai essaye la fonction que tu m'as donne pour crer ce tit lisp d'essai mais y'a un beug j'arrive a creer la liste des point des cotes "LISTPOINT" mais je n'arrive pas a crer les listes "LISTPOINTX" ascendant sur x"LISTPOINTY" ascendant sur y dans le lisp en plus j'ai droit a une erreur mais je vois pas ou ?? ;;--------------------------------- ;;;ajouter des point dans des cotes ;;--------------------------------- (defun C:APC3 () (prompt "CLIQUER SUR LA COTE(S) A MODIFIER POUR ADITIONNER DES POINTS:" ) (setq ENTG1 NIL) (while (null ENTG1) (setq ENTG1 (ssget '((0 . "DIMENSION")))) ) (setq COMPT 0) (setq listpoint nil) (while (< COMPT COM) (progn (setq ENT (entget (ssname ENTG1 COMPT))) (setq NONENT (cdr (assoc -1 ENT)) STYLECOTE (cdr (assoc 3 ENT)) CALQCOTE (cdr (assoc 8 ENT)) POINT10 (trans (cdr (assoc 10 ENT)) 0 1) POINT13 (trans (cdr (assoc 13 ENT)) 0 1) POINT14 (trans (cdr (assoc 14 ENT)) 0 1) ANGCOTE (cdr (assoc 50 ENT)) ;;; ASX1 (car (getvar "ucsxdir")) ;;; ASX2 (cadr (getvar "ucsxdir")) listpoint (cons point13 listpoint) listpoint (cons point14 listpoint) ) (setq COMPT (1+ COMPT)) ) ) (setq listpointx (vl-sort listpoint (function (lambda (p1 p2) (< (car p1) (car p2)) ) ) ) ) (setq listpointy (vl-sort listpoint (function (lambda (p1 p2) (< (cadr p1) (cadr p2))) ) ) ) ;;; (command "scu" "p") (princ) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
zebulon_ Posté(e) le 14 mai 2008 Posté(e) le 14 mai 2008 bonjour, (while (< COMPT COM)(progn (setq ENT (entget (ssname ENTG1 COMPT))) le (progn est inutile ici et le while peut être remplacé par un (repeat (sslength ENTG1).. Il faut peut être aussi faire un vl-load-com pour pouvoir utiliser les fonctions fournies par Visual Lisp. (suivant la version d'autocad, c'est nécessaire ou non) ;;--------------------------------- ;;;ajouter des point dans des cotes ;;--------------------------------- (defun C:APC3 () (vl-load-com) (prompt "CLIQUER SUR LA COTE(S) A MODIFIER POUR ADITIONNER DES POINTS:" ) (setq ENTG1 NIL) (while (null ENTG1) (setq ENTG1 (ssget '((0 . "DIMENSION")))) ) (setq COMPT 0) (setq listpoint nil) (repeat (sslength ENTG1) (setq ENT (entget (ssname ENTG1 COMPT))) (setq NONENT (cdr (assoc -1 ENT)) STYLECOTE (cdr (assoc 3 ENT)) CALQCOTE (cdr (assoc 8 ENT)) POINT10 (trans (cdr (assoc 10 ENT)) 0 1) POINT13 (trans (cdr (assoc 13 ENT)) 0 1) POINT14 (trans (cdr (assoc 14 ENT)) 0 1) ANGCOTE (cdr (assoc 50 ENT)) ;;; ASX1 (car (getvar "ucsxdir")) ;;; ASX2 (cadr (getvar "ucsxdir")) listpoint (cons point13 listpoint) listpoint (cons point14 listpoint) ) (setq COMPT (1+ COMPT)) ) (setq listpointx (vl-sort listpoint (function (lambda (p1 p2) (< (car p1) (car p2)) ) ) ) ) (setq listpointy (vl-sort listpoint (function (lambda (p1 p2) (< (cadr p1) (cadr p2))) ) ) ) ;;; (command "scu" "p") (princ) ) Ce serait aussi plus simple si tu nous disais quel est le message d'erreur ;) AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Patrick_35 Posté(e) le 14 mai 2008 Posté(e) le 14 mai 2008 Salut A te lire, regarde comment ta liste est constitué.A mon avis, tu dois avoir quelque chose de ce style.((1.1 1.1 0.0) 1.2 1.3 0.0 6.6 7.7 0.0) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
PHILPHIL Posté(e) le 14 mai 2008 Auteur Posté(e) le 14 mai 2008 hello zebulon patrick_35 la correction marche ( ca tu t'en doute ) looll ma version ne marchait plus de toute facon apres remise en route d'autocad 2009 je peux donc poursuivre mon lisp merciii phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant