ASTERIXII Posté(e) le 14 avril 2013 Posté(e) le 14 avril 2013 J’ai un problème à vous soumettre, et j’aurais besoin de vos conseils : (En lisp basic ) J’ai 150 calques avec des épaisseurs de ligne différente, mais j’ai 4 ou 5 épaisseurs différentes au total suivant le type de calque (réseau, texte, équipement….)Exemple du début du nom des calques : CV-400.. , CV-410.., PB-100.., PB-200…, FM-300 ect….L’épaisseur n’a aucun rapport avec le nom du calque.Je voudrais modifier l’épaisseur des calques en fonction d’une échelle que je vais déclarer dans une boite de dialogue au moment de mon changement d’épaisseur de ligne.Comment optimiser le lisp ?- Je fais une liste A (ou plusieurs listes ?) avec le début du nom des calques (CV-400) suivie de 3 épaisseurs de ligne pour le calque suivant l’échelle voulue (exemple cv-400 , 0.2 ,0.6 , 1 , cv-410 , 0.1 , 0.3 , 0.8 …..)- Je fais une liste B avec les calques existant dans le plan ? ou il est préférable de les prendre 1 par 1 au cours de traitement ?- Je fais une boucle sur la liste B, récupère les 6 premiers caractères, et fais une recherche de position dans la liste A, récupère le chiffre en position 1,2 ou 3 suivant l’échelle demandée- Applique au calque de la liste B la nouvelle épaisseur - Boucle sur les calquesune autre infola fin du nom du calque est -un ou -bi Ex: CV-400....-un à traiter CV-400....-bi à ne pas traiter, ou conserver la valeur Pour pouvoir modifier facilement les données (ajout d’un calque, modification d’une épaisseur, ou ajout d’une échelle (et par tous) n’est-il pas préférable d’avoir les liste A et B dans des fichiers texte ?
lili2006 Posté(e) le 14 avril 2013 Posté(e) le 14 avril 2013 Bonjour à toutes et tous, Le pb n'est que les épaisseurs de ligne ? Si oui, je propose alors de les gérer via une plume ".stb",.. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
ASTERIXII Posté(e) le 14 avril 2013 Auteur Posté(e) le 14 avril 2013 Non pas que les épaisseurs...d'ailleur je rajoute une info, la fin du nom du calque est -un ou -bi Ex: CV-400....-un à traiter CV-400....-bi à ne pas traiter, ou conserver la valeur
Patrick_35 Posté(e) le 15 avril 2013 Posté(e) le 15 avril 2013 Salut Je ne suis pas certain d'avoir tout compris, mais voici ma proposition de liste telle que je la voir '((CVC400 1 2 3) (CVC200 1 3 2))Le 1er élément est le calsue, le second l'épaisseur de ligne, etc... Quand tu parcours ta liste, tu auras comme élément à traiter par exemple '(CVC400 1 2 3) tout en sachant comment tu as organisé ta liste. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ASTERIXII Posté(e) le 15 avril 2013 Auteur Posté(e) le 15 avril 2013 Patrick,Donc ma list A sera du type '((CV-400 bi 1 2 3) (CV-400 un 4 5 6) (CV-200 bi 1 3 2)) "CV-400" étant le début du calque et "bi" la fin Pour 258 calques (je viens de recompter) c'est pas trop lourd à gerer ?Un fichier en lecture n'est pas mieux ? Et pour les calques du plan, c'est mieux de boucler un par un ou de faire une liste et ensuite le traitement ?
Patrick_35 Posté(e) le 15 avril 2013 Posté(e) le 15 avril 2013 Il est plus simple de gérer une liste que plusieurs. Si tu as deux listes, il faut dire à un moment quand passer à l'autre. Cela veut donc dire un test, ce qui ralenti forcement le lisp. Quand tu fais une sélection dans un dessin de 3000 éléments, cela est assez rapide dans autocad.Alors pour 258 calques, tu n'auras pas le temps de mettre le sucre dans le café ;) Le plus simple, si tu cherches à optimiser ton lisp, c'est de publier un 1er jet et on se fera un plaisir de t'indiquer ce qu'il faut améliorer et pourquoi. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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