Aller au contenu

burst dans tout les onglets


nobless

Messages recommandés

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................???????????????????

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

2 méthodes

 

1. une formule, une réponse, un point en X,Y, =une case dans EXCEL

2. 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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

se sont des plan que j'ai recuperer d'un autre B.E

sinon je ne mais pas d'espace et je n'ai pas le temps de les renommer

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 ??

 

sinon encore un bug de filter en passant

j'ai voulu selectionner tout les blocs cartouches et les burster

je 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é

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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 distinction

Si 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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

1) sssmachin retourne (nil nil) si la sélection est vide, d'où l'intérêt de ne pas appeler burst

2) À 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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

...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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Invité Patrick
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)

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité