Fishtonn Posté(e) le 14 mai 2020 Posté(e) le 14 mai 2020 Bonjour, A partir d'un dwg comme celui-ci: (dwg source) j'aimerai faire un lisp qui soit capable de repérer les différentes pièces et les exporter séparément. Il existe peut-être déjà quelque chose qui le permette ? en tout cas je n'ai pas trouvé. J'ai pensé structurer mon programme comme ça: - eclater tous (au cas où il y aie une insertion de bloc, pour que tout soit au même niveau)- convertir les splines en polyligne (au cas où il y en aie)- convertir tout en polyligne jointe (ce qui me permettrait au passage de voir si un contour est resté ouvert)- comparer les bounding box des différentes polylignes. Si la bounding box d'une polyligne est comprise entièrement dans la bounding box d'une autre c'est que c'est un contour intérieur, autrement c'est un contour extérieur.- faire une sélection à partir des polylignes précédemment définies comme contour extérieur pour exporter les pièces. Qu'en pensez vous ?
Fishtonn Posté(e) le 15 mai 2020 Auteur Posté(e) le 15 mai 2020 Salut, J'avance bien avec mon lisp, j'en suis à l'étape de la comparaison des bounding boxes. Je pense faire une liste des contours avec les valeurs des points de leurs bounding box, pour pouvoir ensuite les comparer entre eux.Mais je bloque un peu sur la création de cette liste, et comment lire dedans ensuite.Est-ce qu'il est possible de faire une liste contenant des listes ?Quelque chose du genre: [liste bounding boxes] [ (1) (nom contour 1) (Xmin Ymin Xmax Ymax) ] [ (2) (nom contour 2) (Xmin Ymin Xmax Ymax) ] .....[fin liste bounding boxes] Comment recuperer ensuite les elements pour les comparer ?Je suppose qu'il s'agit de listes d'association ? J'essaie de m'y retrouver grâce au site de Gile (un grand merci à lui pour son boulot) mais je suis encore un peu confus là dessus... lien avec le lisp en cours de développement et le fichier dwg de test.lien wetransfer
didier Posté(e) le 16 mai 2020 Posté(e) le 16 mai 2020 Coucouce sujet a été résolu par des "grands" de la programmation, je ne suis pas certain que débuter avec ce genre de challenge soit une vraie bonne idéeun exemple de liste contenant des listes, pas le meilleur exemple mais un exemple : (setq a '( 10 20 30 40)) (setq nom "contour1") (cons (list (list a nom)) (list (list a nom))) renvoie ((((10 20 30 40) "contour1")) ((10 20 30 40) "contour1")) Éternel débutant… Mon site perso : Programmer dans AutoCAD
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