Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Pour joindre des polylignes selon leur calque j'ai ecrit ce lispounet

(defun  c:jptolay (/ i)
(setvar "peditaccept" 1)
(listLayers)
(foreach lay lst1 
(jplay lay)
)
)

(defun jplay (lay)
(if (setq pol(ssget "x" (list (cons 0 "LWPOLYLINE") (cons 8 lay))))
(vl-cmdf "_.pedit" "_m" pol "" "_j" 0.00 "")
)
)

(defun listLayers (/)  ;fonction de giles me semble t'il

 (setq lay (tblnext "layer" T))
 (while lay
   (setq lst1 (cons (cdr (assoc 2 lay)) lst1)
  lay  (tblnext "layer")
   )
 )
)

 

Je pensait y arriver avec mapcar (voulant la comprendre)

 

mais connaissant la fonction foreach, c'est celle la que j'ai fini par utiliser.

 

Donc comment cela s'ecrit avec mapcar?

 

car j'ai eu beau essayer , j'y arrive pah :P

 

merci

Posté(e)

 (mapcar '(lambda(x)(jplay x))lst1)

 

Tout simplement. C'est la structure de base.

Tu peux même écrire :

(mapcar 'jplay lst1) 

 

Puisque la fonction ne contient qu'un argument !

 

(mapcar 'jplay (listLayers))

 

Serait encore plus joli si tu mettais lst1 en locale de listLayers et en l'ajoutant avant la dernière parenthèse !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)

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é