Invité Patrick Posté(e) le 5 janvier 2003 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Serge Posté(e) le 23 juillet 2004 Partager Posté(e) le 23 juillet 2004 Euréka ! (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget l))) Serge Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 3 septembre 2004 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Serge Posté(e) le 3 septembre 2004 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
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