tizianost
Guest
bonjour tout le monde, j'essaie dans mon troisième script en lisp et comme d'habitude je suis coincé, j'espère que vous pouvez m'aider.
avec le code ci-dessous, je voudrais supprimer d'un design donné tous les objets "point" recoupés, je sais qu'il y a une fonction similaire dans le menu express mais je voudrais un script qui fonctionne sur n'importe quel autocad même sans ce menu.
(setq group (ssget "x")); sélectionner tous les éléments de la conception
(setq nent (1- (groupe de longueur));
(setq i 1); empêche les cycles sans fin
(et (> nent -1) (< i 1000000) ; cycle pour tous les éléments
; extrait le nom de l'élément
(élément seq (entget ent)); extrait l'élément "ent" de la base de données
;(imprimer i)
(setq tipoent (cdr (assoc 0 élément)))
(imprimer le tipoent)
(si)
(progrès)
(setq nent2 nent)
(setq j 0)
(et (> nent2 -1) (< j 1000000)
(setq ent2 (nom du groupe nent2) ; extrait le nom de l'élément
(élément setq2 (entget ent2) ; extrait l'élément "ent" de la base de données
(si (/= (cdr (associé -1 élément)) (cdr(associé -1 élément2)) ; vérifier que ce n'est pas le même objet)
(progrès)
(impression (cdr (assoc -1 élément))
(impression (cdr (assoc -1 élément2))
(coordonnée de setq1 (cdr (élément d'assoc 10)))
(coordonnée de setq2 (élément cdr 102))
(si (= coordonnées1) ; si le second objet a les mêmes coordonnées que le premier...(progrès)
(entrée)
(imprimer "éliminer")
(setq group (ssget "x")) ; reconstituer tous les éléments de la conception
(setq nent (1- (groupe de longueur));
) ;
(progrès)
(imprimer "objet avec des coorinates différents")
(empreinte (coordonnées de voiture1))
(empreinte (coordonnée de voiture2))
) ;
) ;
) ;
) ;
(setq j (1+ j)
(setq nent2 (1- nent2)
) ; fin du temps
) ;
) ;
(setq i (1+ i))
(setq nent (1- nent))
) ; fin du temps
après des tentatives sans fin sont venues à croire que les erreurs sont dans les fonctions si elles ne parviennent pas à comparer les listes de coordonnées et d'entités (je me trompe)
merci d'avance.
bonjour.
titien
avec le code ci-dessous, je voudrais supprimer d'un design donné tous les objets "point" recoupés, je sais qu'il y a une fonction similaire dans le menu express mais je voudrais un script qui fonctionne sur n'importe quel autocad même sans ce menu.
(setq group (ssget "x")); sélectionner tous les éléments de la conception
(setq nent (1- (groupe de longueur));
(setq i 1); empêche les cycles sans fin
(et (> nent -1) (< i 1000000) ; cycle pour tous les éléments
; extrait le nom de l'élément
(élément seq (entget ent)); extrait l'élément "ent" de la base de données
;(imprimer i)
(setq tipoent (cdr (assoc 0 élément)))
(imprimer le tipoent)
(si)
(progrès)
(setq nent2 nent)
(setq j 0)
(et (> nent2 -1) (< j 1000000)
(setq ent2 (nom du groupe nent2) ; extrait le nom de l'élément
(élément setq2 (entget ent2) ; extrait l'élément "ent" de la base de données
(si (/= (cdr (associé -1 élément)) (cdr(associé -1 élément2)) ; vérifier que ce n'est pas le même objet)
(progrès)
(impression (cdr (assoc -1 élément))
(impression (cdr (assoc -1 élément2))
(coordonnée de setq1 (cdr (élément d'assoc 10)))
(coordonnée de setq2 (élément cdr 102))
(si (= coordonnées1) ; si le second objet a les mêmes coordonnées que le premier...(progrès)
(entrée)
(imprimer "éliminer")
(setq group (ssget "x")) ; reconstituer tous les éléments de la conception
(setq nent (1- (groupe de longueur));
) ;
(progrès)
(imprimer "objet avec des coorinates différents")
(empreinte (coordonnées de voiture1))
(empreinte (coordonnée de voiture2))
) ;
) ;
) ;
) ;
(setq j (1+ j)
(setq nent2 (1- nent2)
) ; fin du temps
) ;
) ;
(setq i (1+ i))
(setq nent (1- nent))
) ; fin du temps
après des tentatives sans fin sont venues à croire que les erreurs sont dans les fonctions si elles ne parviennent pas à comparer les listes de coordonnées et d'entités (je me trompe)
merci d'avance.
bonjour.
titien