TAIKI,
I told you the repeat Loop are nested.
and they must be nested.
In your last code this is not what you are doing.
JS est une selection de polyligne.
Pour chaque polyligne de la selection JS tu crees
une selection de blocs dans SS, c'est la premiere boucle repeat
Pour chacun des blocs dans SS tu obtiens la coordonnee
du point d'insertion que tu accumules dans la liste PL,
c'est la seconde boucle repeat
Tu traites le prochain polyligne.
Tous les polylignes sont traites PL contiens tous
les points d'insertion.
Autre point, je crois que ton "cond" ne vas pas.
Pour debuter oublie la preselection ne fais qu'une
selection de polyligne avec (SSGET)
Une fois que tu maitrises, tu pourras rajouter la preselection.
Je vois que tu as trouve comment faire pour inserer le code dans le forum.
C'est bien, maintenant tu devrais modifier tes anciens "post" pour les rajouter.
(defun c:test (/ ename fence listpol ss i j pl)
;;; listpol by Gille Chanteau ;
;;; Returns the vertices list of any type of polyline (WCS coordinates) ;
;;; ;
;;; Argument ;
;;; en, a polyline (ename or vla-object) ;
(defun listpol (en / i p l)
(setq i (if (vlax-curve-IsClosed en)
(vlax-curve-getEndParam en)
(+ (vlax-curve-getEndParam en) 1)
)
)
(while (setq p (vlax-curve-getPointAtParam en (setq i (1- i))))
(setq l (cons (trans p 0 1) l))
)
)
;---------Corps du Programme------------------------------------------------;
(prompt "\nSelectionnez les Polylignes a traiter: ")
(if (setq js (ssget '((0 . "*POLYLINE"))))
(repeat (setq i (sslength js))
(setq ename (ssname js (setq i (1- i)))
fence (listpol ename)
ss (ssget "_F" fence '((0 . "INSERT")))
)
(repeat (setq j (sslength ss))
(setq pl (cons (cdr (assoc 10 (entget (ssname ss (setq j (1- j)))))) pl))
); Fin Seconde Boucle repeat
); Fin Premiere Boucle repeat
)
)
ymg