nobless Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 he bonjour, je dois appliquer la commande burst ( qui transforme les attributs en textes) a tout mes cartouche. j'ai essayé la phrase "Bonuscadolispienne" suivante (foreach n (layoutlist) (setvar"CTAB" n) (command "_burst"'(0.0 0.0 0.0) '(0.0 0.0 0.0))) et autocad me repond qu'il ne connait pas burst................???????????????????
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 essaies en script (je sais pas si "_burst" est accessible en lisp par un command, on ne met pas un lsp dans un command) ! à la selection, réponds par "tout;" (le ; ou "espace" pour siginifer ENTREE, il faut faire un ENTREE supplémentaire après un choix d'objet) [Edité le 19/8/2004 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 j'y arrive pas en scriptquand je charge un scr il me marque des caractere bizare sur la ligne de commande du style ('"('*
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 Laisse tomber, tu mélanges du lsp avec du script. le script, c'est le nom des commandes, les coordonnées et certaines réponses comme tu les taperais en dessinant sur AutoCAD ., dans l'ordre. Mon tuto est pourtant bien fait. Le script est payant tout de suite et on n'est pas dépendant de programmes Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 presentation etablir 1-50e burst tout zoom t presentation etablir 1-20e burst tout zoom t presentation etablir 1-10e burst tout zoom t presentation etablir 1-100e burst tout zoom t presentation etablir 1-resto! burst tout zoom t Ca c'est du script Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 donc je vais dans exel je tape tout dans une case ou chaque ligne dans une case?
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 2 méthodes 1. une formule, une réponse, un point en X,Y, =une case dans EXCEL2. l'utilisation de CONCATENER (Excel) Faut mettre au point le mini script + haut sachant qu'il faut souvent rectifier les espaces (rappel: un ESPACE = un entrée idem pour le retour à la lgine ou le ";"). Par exemple, ce code fonctionne (il donne des attributs au cartouche) : presentation etablir 1-100e _insert cartouche 1564,10 1 1 0 1..6.. L 03.06.03 T..T..Z 1..0..2 1/100 Z..I..M P 0 _ S..Y..N SYN-P-0-0-1-L.DWG SYNTHESE REZ DE CHAUSSEE FOND DE PLAN presentation etablir ZE _insert cartouche 1564,10 1 1 0 1..9.. L 03.06.03 Z..E..- 1..0..2 1/50 Z..I..M P 0 _ S..Y..N SYN-P-0-0-1-L.DWG SYNTHESE REZ DE CHAUSSEE FOND DE PLAN ou celui là : presentation etablir ZE effacer tout presentation etablir ZO effacer tout presentation etablir NORD effacer tout presentation etablir SUD effacer tout presentation etablir 1-100e effacer tout (ici, un espace après le "tout" invisible sur CADxp, entre les mots, il y a un TAB, ca marche aussi, c'est généré par la méthode 1) [Edité le 19/8/2004 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 comment qu'on fait quand le nom de ta presentation contient un espace?
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 on passe à la ligne (ca peut marcher qd même) ou on mais le moins d'espaces possible quand on travaille ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 se sont des plan que j'ai recuperer d'un autre B.Esinon je ne mais pas d'espace et je n'ai pas le temps de les renommera propos de temps, mon but est d'en gagner et si je dois retaper le script pour chaque plan car les onglets n'on pas le meme nom ni le meme nombre vois tu le souci ?? sinon encore un bug de filter en passantj'ai voulu selectionner tout les blocs cartouches et les bursterje me suis retrouver avec tout les attributs transformer en texte mais superposer dans l'onglet au j'etait par contre les autre onglets n'on pas bougé
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 a propos de temps, mon but est d'en gagner et si je dois retaper le script pour chaque plan car les onglets n'on pas le meme nom ni le meme nombre vois tu le souci ?? Oui, mais en combinant ses manips (layoutlist par ex) avec un peu de lisp, on peut aller très vite. Pour ce qui est du nom des fichiers, il faut un listeur, je tacherai de porposer le lien vers un gratuiciel. A toi de voir, moi je fais la pub du script parce que ca marche aussi sur LT. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Krynn Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 et autocad me repond qu'il ne connait pas burst................??????????????????? c'est une nouvelle fonction de la 2005 burst? Si je tape _burst sur ma ligne de command ca me onne rien et j'ai rien dans l'aide!
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 cela fait parti des bonusça explose ton bloc en transformant tes attributs en texte je n'utilise les attributs que pour recuperer des données sou exeldonc quand je recupere des plans en contenant je les explose!!!!! :D
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 je reviens a ma question de basecomment incorporer une commande faisant parti des bonus dans un lisp
bonuscad Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 Hello, le lisp à la rescousse ;) (foreach n (layoutlist) (setvar "CTAB" n) (sssetfirst nil (ssget "_X" (cons (cons 410 (getvar "ctab"))'((0 . "INSERT"))))) (c:burst)) Cela va traitre tout les blocs sans distinctionSi tu veux un bloc particulier, change:'((0 . "INSERT)) en '((0 . "INSERT") (2 . "nom du bloc a traiter)) Tu peux suprimer aussi (sssetfirst ......), la commande te demandera alors la sélection pour chaque présentation. Good luck! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
nobless Posté(e) le 19 août 2004 Auteur Posté(e) le 19 août 2004 c'est donc avec c:burst merci beaucoup il faut que j'arrive a maitriser les commandes de selection en lispc'est toujours une question de temps
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 burst est un lisp donc, il ne faut pas l'appeler avec command. dans ce cas le lsp est très très puissant (vu la taille du code)(ici, bonus, nous livre un truc dément avec le foreach [je ne connaissais pas])mais n'oubliez pas le script ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Serge Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 bonuscad, Dans ton code, que je trouve très bien, il y a 2 lacunes:1) Ça ne tient pas compte de l'onglet Objet (model space)2) Ça applique Burst même si la sélection est vide. Voici un correctif. On peut copier le code dans le fichier BurstAll.lsp puis le charger sur demande. On tape ensuite la comande BURSTALL (defun c:burstall ( / firstLayout layouts model modelName ssf) (setq model (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-Acad-Object)))) (setq modelName (vla-get-name (vla-get-layout model))) (setq layouts (cons modelName (layoutlist))) (setq firstLayout (getvar "ctab")) (foreach layout layouts (setvar "ctab" layout) (setq ssf (sssetfirst nil (ssget "_x" (list (cons 410 layout) (cons 0 "insert"))))) (if (not (equal '(nil nil) ssf)) (c:burst)) ) (setvar "ctab" firstLayout) (princ)) (princ "\nTapez BURSTALL pour appliquer BURST dans toutes les présentations.")(princ) Serge
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 J'ai pas de débuggeur sous la main, pourquoi ce code, pourquoi '(nil nil) ? (equal '(nil nil) ssf)) (setq model (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-Acad-Object)))) (setq modelName (vla-get-name (vla-get-layout model))) A quand un cours sur les fonctions Vlisp ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Serge Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 1) sssmachin retourne (nil nil) si la sélection est vide, d'où l'intérêt de ne pas appeler burst2) À quand le cours? J'ai déjà demandé s'il y avait des adeptes pour un manuel et je n'ai rec¸u qu'une réponse. Je peux siganler tout de même un livre que j'avais publié en 1999 et qui contient un long chapitre sur le sujet. Ce livre est encore disponible en France. Voir la table des matières à l'adresse suivante:http://www.univers.qc.ca/eui/r15maj/tdm15maj.htm Serge
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 nil j'aurais compris mais '(nil nil), je sèche. Si c'est bien sur le Vlisp pour Autocad (ce que je crois comprendre) et non Autolisp, j'achète. :cool: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 Salut Serge, En effet je n'ai pas traité l' EO et vérifié la sélection. Mais toi qui a l'habitude de condenser le code, voilà que tu nous fais des truc a rallonge avec des (vla-truc) Corrigé comme ceci c'est identique, sans aucune définition de variable(foreach n (cons "Model" (layoutlist)) (setvar "CTAB" n) (if (not (cadr (sssetfirst nil (ssget "_X" (cons (cons 410 (getvar "ctab"))'((0 . "INSERT"))))))) (prin1) (c:burst) )) Nobless parlait de cartouche dans les présentations (il ne veut peut être pas toucher à l'EO le monsieur), je donnais juste la base du code.Et puis dans le cas de calque verrouillés ni la tienne, ni la mienne de fonctionne.La gestion des erreurs, VASTE programme et c'était pas mon but ici. Il faudra que tu m'explique pourquoi tu a fait tout ce code en vla (EO s'appelle toujours "Model" en lisp) Bruno Valsecchi allias bonuscad Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 ...pourquoi tu a fait tout ce code en vla Depuis 2000, c'est la révolution dans les fonctions Autolisp, mais on est tous comme des ânes à pas piger grand chose à ces fonctions (la famille des vl-...) , même si l'aide fait ce qu'elle peut. Attention à faire (vl-load) ou (vla-load) sous 2000 Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Invité Patrick Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 nil j'aurais compris mais '(nil nil), je sèche Lorsque la fonction (sssetfirst) est évaluée, elle renvoie une liste de deux éléments dont le deuxième est le jeu de sélection passé en argument. Si ce jeu de sélection est nul, la fonction renvoie '(nil nil)
Tramber Posté(e) le 19 août 2004 Posté(e) le 19 août 2004 C'est l'apanage de ceux qui sont sur le bouquin de la R 13. Largué pour toutes les nouvelles fonctions (enfin, ce soir, j'ai retrouvé ma machine, je regarde dans l'aide....ta la la la, la la) [Edité le 19/8/2004 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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