G2.toff Posté(e) le 9 avril 2014 Partager Posté(e) le 9 avril 2014 Bonjour, Voilà je cherche un lisp pour créer des blocs "automatiquement", je m'explique. En fait dans ma société on fait des plans de réseaux VRD, et souvent on doit faire un Wbloc d'un réseau (ou plusieurs)pour l'envoyer à une entreprise. On fonctionne de la manière suivante, c'est à dire avec des barre d'outils personnalisées sur lesquelles on a paramétré des sortes de filtres d'affichage (espace objet). Exemple, on a une base de calque inchangée qui commence par MASSE_ et des calques réseaux qui commencent par AEP_ pour l'eau potable, ELEC_ pour l'électricité etc... Lorsque l'on clique sur un bouton d'un réseau cela fait tout disparaitre puis ré-apparaitre les calques commençant par COMP_ et les calques du réseau voulu (ex: AEP_). Lorsque l'on doit envoyer un fichier DWG par réseau on doit faire apparaitre chaque réseau et créer le Wbloc de chacun, par la sélection fenêtre, cela peut vite être long. J'ai vous joins un lisp qui n'est pas vraiment abouti, mais qui est proche de ce que je voudrait faire, mais je plante grave, normal je débute vous me direz. Est-ce possible que lorsque je clique sur le bouton AEP(exemple AEP, il y aurait un bouton par réseau), qu'il me sélectionne d'office les objets (poly, bloc, tout) sur trouvant sur les calque COMP_* et AEP_* (même si les calques ne sont pas affichés à l'écran), qu'il me demande dans quel SCU je veux faire mon Wbloc (ce que fait le lisp joint)un choix par cochage pourrait être sympa mais c'est c'est la cerise, et puis qu'il me demande ou je veux enregistrer mon fichier Wbloc avec par défaut le dossier du fichier courant (là le lisp joint ne le fait pas il le fait tout le temps dans D:Données...). Si cela est déjà possible, après j'ai bien des idées d'évolutions, du style que je définisse le format (nombre de A4)en hauteur et en longueur du plan selon l'échelle afin qui ne me sélectionne que les éléments situés des cette fourchette (cadre), mais bon là faut se calmer, donc je me calme...Voici le lisp que je voudrait faire évoluer si c'est possible !!! ;Demande le choix du SCU à utiliser :;initialisation des options possibles General ou Plans, le code 1 empêche l’utilisateur d’appuyer juste sur Entree. Il doit forcément saisir une valeur(initget 1 "General Plans _General Plans"); demande le choix (selon valeurs initialisées juste avant), les 2 seules valeurs possibles sont General ou Plans même si l’utilisateur ne tape que G ou P(setq Choix (getkword "\nChoix du SCU [Général/Plans] ")); restaure le SCU demandé(if (= Choix "General") (command "_UCS" "_W") (command "_UCS" "_R" "PLANS")); demande de piquer le point de base(setq PT (getpoint "\nPoint de base <0,0,0>: ")); SI l’utilisateur fait RETURN alors la valeur de PT est nil donc on la teste et on lui affecte 0,0 à la place(if (not PT) (setq PT (list 0.0 0.0 0.0))) ; Lance le Wbloc(command "-wbloc" "D:/DONNEES/TEST2.DWG" "" PT (ssget "x" (list (cons 8 "0,AEP*,CADRE*,COMP_*"))) "") Merci d'avance pour votre aide, Lien vers le commentaire Partager sur d’autres sites More sharing options...
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