x11start
Guest
J'ai créé un lisp que j'utilise habituellement pour imprimer en succession différentes tables (formées a4 et a3), disposées dans l'espace modèle.
fondamentalement la commande demande de sélectionner les tables que j'ai l'intention d'imprimer et comme les coordonnées d'impression utilisent les panneaux (lwpolyline) qu'elle trouve sur les calques "zz_format".
(setq selpol(ssget; select entities' (avec filtre)
(liste)
(cons.<and") "and="" "lwpolyline")="" "zz_formato"="" "zz_formato")="" (cons="" -4="" ...="" 0="" 8="" ;="" entita'="" lascia="" le="" passare="" piano="" polilinea="" poste="" solo="" sul="">"
)
)
le problème se pose quand par erreur, il y a deux carrés qui se chevauchent, ou l'un se trouve à l'intérieur d'un autre : par exemple le cadre du format qui est également situé sur le calque "zz_formato", au lieu d'un autre calque que le lisp ignorerait.
Dans ces cas, mon dessin est imprimé par erreur 2 fois, l'un prenant le format correct et l'autre prenant le cadre légèrement plus petit.
Je voudrais donc trouver un moyen de trouver l'erreur, ce qui me permet d'arrêter mon lisp et de rapporter le mauvais panneau... avec un joli cercle!
le workflow que je pensais utiliser est le suivant:
- J'exécute une à une toutes les polylines sélectionnées et je les trouve sur le calque "zz_formato".
Je crée une liste contenant les tops de chaque polyligne trouvée.
- Je crée une deuxième liste contenant le baricentro (point d'intersection du premier avec le 3ème sommet et le 2ème avec le 4ème).
- Je vois un par un les baricentres trouvés et je vérifie si ceux-ci sont à l'intérieur, pas seulement la liste des points considérés
mais aussi une autre liste. Si oui, cela signifie que ce point est interne, pas seulement de la figure dont il est centré,
mais aussi d'un autre: C'est une erreur.
Je ne sais pas si c'est le bon flux ou s'il y a des solutions plus rapides : Je voudrais éviter d'écrire des pages et des pages de code, pour
puis découvrez qu'avec 4 commandes vl-xx vous pouvez tout faire !</and")>
fondamentalement la commande demande de sélectionner les tables que j'ai l'intention d'imprimer et comme les coordonnées d'impression utilisent les panneaux (lwpolyline) qu'elle trouve sur les calques "zz_format".
(setq selpol(ssget; select entities' (avec filtre)
(liste)
(cons.<and") "and="" "lwpolyline")="" "zz_formato"="" "zz_formato")="" (cons="" -4="" ...="" 0="" 8="" ;="" entita'="" lascia="" le="" passare="" piano="" polilinea="" poste="" solo="" sul="">"
)
)
le problème se pose quand par erreur, il y a deux carrés qui se chevauchent, ou l'un se trouve à l'intérieur d'un autre : par exemple le cadre du format qui est également situé sur le calque "zz_formato", au lieu d'un autre calque que le lisp ignorerait.
Dans ces cas, mon dessin est imprimé par erreur 2 fois, l'un prenant le format correct et l'autre prenant le cadre légèrement plus petit.
Je voudrais donc trouver un moyen de trouver l'erreur, ce qui me permet d'arrêter mon lisp et de rapporter le mauvais panneau... avec un joli cercle!
le workflow que je pensais utiliser est le suivant:
- J'exécute une à une toutes les polylines sélectionnées et je les trouve sur le calque "zz_formato".
Je crée une liste contenant les tops de chaque polyligne trouvée.
- Je crée une deuxième liste contenant le baricentro (point d'intersection du premier avec le 3ème sommet et le 2ème avec le 4ème).
- Je vois un par un les baricentres trouvés et je vérifie si ceux-ci sont à l'intérieur, pas seulement la liste des points considérés
mais aussi une autre liste. Si oui, cela signifie que ce point est interne, pas seulement de la figure dont il est centré,
mais aussi d'un autre: C'est une erreur.
Je ne sais pas si c'est le bon flux ou s'il y a des solutions plus rapides : Je voudrais éviter d'écrire des pages et des pages de code, pour
puis découvrez qu'avec 4 commandes vl-xx vous pouvez tout faire !</and")>