Invité Patrick Posté(e) le 5 janvier 2003 Posté(e) le 5 janvier 2003 La fonction Vlisp suivante renvoie une liste de tous les sommets d'uneLWpolyligne: (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entgetlwpolyline))) lwpolyline est le nom de l'entité LWpolyligne à fournir à la fonction.Peut-on faire plus court? Là est la question... le débat est ouvert.
Serge Posté(e) le 23 juillet 2004 Posté(e) le 23 juillet 2004 Euréka ! (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget l))) Serge
bonuscad Posté(e) le 3 septembre 2004 Posté(e) le 3 septembre 2004 Serge, Est ce que la solution de transformé ta fameuse ligne en:(mapcar '(lambda (x) (trans x e 0)) (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (setq e (car (entsel))))))) Ne serait t'elle pas plus sûr (tenir compte du dxf 210?) pour ramener les points dans le SCG? Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Serge Posté(e) le 3 septembre 2004 Posté(e) le 3 septembre 2004 Bruno, Les codes dxf sont toujours exprimés en terme du référentiel absolu (WCS ou SCG). Par contre, ta suggestion est bonne si tu veux convertir les points en termes de SCU, dans le contexte où tu dessinerais via (command "lacommande" pt1 pt2 pt3 etc) Incidemment, j'avais publiée une routine plus générale qui traite les polylignes anciennes et optimisées ;;; getVertices ;;; Retourne une liste de sommets;;; Usage (getVertices ename), où le ename s'obtient par un entsel, un ssget, etc.(defun getVertices ( ename / plineGet return vertex vertexGet ) (setq return nil) (cond ((or (/= (type ename) 'ENAME) (not (setq plineGet (entget ename)))) (setq return nil)) ((= "POLYLINE" (cdr (assoc 0 plineGet))) (setq vertex (entnext ename)) (while (= "VERTEX" (cdr (assoc 0 (setq vertexGet (entget vertex))))) (setq return (cons (cdr (assoc 10 vertexGet)) return)) (setq vertex (entnext vertex)) ) (setq return (reverse return)) ) ((= "LWPOLYLINE" (cdr (assoc 0 plineGet))) (setq return (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) plineGet))) ) (t (setq return nil)) ) return) Serge
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