Aller au contenu

Remplacement de bloc


Messages recommandés

Posté(e)

Salut

 

Dans le 2e onglet, il suffit de décocher la case "Ouvrir" pour gérer soi même l'ouverture des fichiers (ça permet d'utiliser la commande _recover à la place par ex.).

Ok, je n'avais pas vu (et je viens de changer de lunettes)

 

Normalement je ne vois pas ce qui pourrait nécessiter de faire un rechercher remplacer, puisqu'il suffit de modifier la liste

Ben justement, en reprenant ton exemple, remplacer _.open par _.recover

Ou encore, pour quitter sans sauvegarder, remplacer _.close par _.close _no

 

Dans le 2em onglet, tu as une option Sauver dans et je n'ai vu aucune incidence dans le script

 

J'ai remarqué aussi que tu ne conservais pas les options retenues (par exemple, je choisis de voir les versions dans la liste de fichiers et quand je relance séquence, je suis obligé de re-sélectionner cette option)

J'ai vu qu'il était possible d'importer/d'exporter des séquences au format seq.

Si on avait la même chose, mais au format scr

 

ps : Il serait bien d'ouvrir un nouveau sujet pour éviter de polluer ce post

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour,

 

Vous trouverez ci-joint un fichier Zip contenant 3 fichiers un fichier lisp, un fichier excel et une fichier dwg (exemple)

 

Ce programme permet le remplacement un bloc par rapport à un fichier excel (cf extrait ci-dessous)

 

http://images.imagehotel.net/1dtix629ml.jpg

 

bloc1 = nom du bloc a remplacer

calque 1 = le bloc se trouve dans le calque xxxx mettre * pour sélectionner dans tous les calques

 

bloc 2 = nom du bloc de remplacement

calque 2 = calque de destination

 

donc pour résumer:

 

1 charger le lisp puis taper la commande: rplce_block

2 choisir le fichier excel

 

 

voila c'est fini

 

Votre trouverez un fichier excel fournir avec uniquement un bloc.

 

Bonne utilisation,

 

Cordialement,

 

Laurent

lisp rbloc.zip

Posté(e)

Salut ;)

Ben justement, en reprenant ton exemple, remplacer _.open par _.recover

Ou encore, pour quitter sans sauvegarder, remplacer _.close par _.close _no

 

Justement, il suffit de remplacer (une seule fois) _.open par _.recover dans la séquence de commandes (2e onglet) pour que tout le script se mette à jour dans le 3e onglet.

C'est pour cela que je ne vois pas l'intérêt d'ajouter une fonction rechercher/remplacer...

 

Dans le 2em onglet, tu as une option Sauver dans et je n'ai vu aucune incidence dans le script

Oui, c'est une option qui n'est pas vraiment finie...

Pour l'instant, elle ne sert que si on utilise la "variable prédéfinie" $(savefolder) dans la séquence de commandes (quand on édite une séquence, un clic droit permet d'insérer des variables).

 

J'ai remarqué aussi que tu ne conservais pas les options retenues (par exemple, je choisis de voir les versions dans la liste de fichiers et quand je relance séquence, je suis obligé de re-sélectionner cette option)

En l'occurrence, c'est pour des raisons de performance: dans le cas où le nombre de fichiers à traiter est très important, le fait de scanner la version de chaque fichier ralentit pas mal le remplissage de la liste. On peut par contre cocher la case après le remplissage pour connaître la version des fichiers.

L'opération étant effectuée dans un thread séparé, on peut en même temps travailler dans le 2e onglet par exemple. ;)

J'ai vu qu'il était possible d'importer/d'exporter des séquences au format seq.

Si on avait la même chose, mais au format scr

On peut exporter le script complet en scr depuis le 3e onglet.

Pour les séquences, j'ai choisi une extension différente car justement ce ne sont pas des scripts complets. De plus, chaque fichier seq contient 3 séquences de commandes correspondant aux 3 zones du 2e onglet.

Cela dit, ces fichiers sont de simples fichiers texte, on peut donc renommer un seq en scr et vice versa...

 

ps : Il serait bien d'ouvrir un nouveau sujet pour éviter de polluer ce post

 

Je vais faire ça, mais pas forcément tout de suite. Il faudrait que je modifie encore certains points avant.

Posté(e)
Justement, il suffit de remplacer (une seule fois) _.open par _.recover dans la séquence de commandes (2e onglet) pour que tout le script se mette à jour dans le 3e onglet.

Je ne comprends pas.

Dans le 2em onglet, j'ai les options Ouvrir, Sauver et fermer, Sauver dans et Evaluer diesel.

Ensuite, on ajoute les commandes préliminaires, celles qu'on applique à chaque dessin et les commandes terminales.

Je ne vois pas où remplacer dans la séquence de commandes

 

Par exemple, l'option ouvrir n'est pas sélectionnée et je mets une commande à appliquer à chaque dessin, je retrouve dans le script généré ma commande multipliée par le nombre de dessins (normal)

Si l'option ouvrir est choisie, je retrouve ma liste de fichier (normal), mais rien qui permette de remplacer _.open par _.recover

 

En l'occurrence, c'est pour des raisons de performance

Ce qui est tout à ton honneur, mais ce que je voulais indiquer, c'est d'avoir la possibilité de conserver les paramètres (comme aussi le dernier répertoire selectionné pour la liste de fichiers par exemple)

 

On peut exporter le script complet en scr depuis le 3e onglet.

Oui, mais si on a déjà des scripts ou si on a une séquence assez longue et que l'on teste notre script/lisp sur un dessin avant de le lancer sur un ensemble de fichiers.

C'est tout simplement avoir le choix de l'extension dans le 2em onglet

 

Je vais faire ça, mais pas forcément tout de suite. Il faudrait que je modifie encore certains points avant.

Et j'en rajoute une couche ;)

 

ps : je suis en version 1.0 bêta

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Par exemple, l'option ouvrir n'est pas sélectionnée et je mets une commande à appliquer à chaque dessin, je retrouve dans le script généré ma commande multipliée par le nombre de dessins (normal)

Si l'option ouvrir est choisie, je retrouve ma liste de fichier (normal), mais rien qui permette de remplacer _.open par _.recover

En effet, je n'ai pas été clair.

Si la case "Ouvrir" est cochée, la commande _open est générée automatiquement, et on ne peut pas la remplacer par autre chose.

Si l'utilisateur décoche la case "Ouvrir", c'est à lui de gérer l'ouverture du fichier.

Il faut alors insérer une nouvelle ligne dans la séquence de commandes, et y mettre par exemple

_open "$(folder)$(file)$(ext)"

ou

_recover "$(folder)$(file)$(ext)"

Au passage, j'ai vu que dans la version que j'ai postée les variables en question ne fonctionnent pas, il faudra retélécharger Sequence en Beta 2 pour tester ça et le Diesel.

J'en ai profité pour ajouter l'import export en scr dans le 2e onglet. ;)

Posté(e)

La question n'est pas très claire, mais voilà la démarche en gros:

- on insère le bloc cartouche dans un dessin vide, et on renseigne les infos du cartouche qui sont communes à tous les folios

- on insère ensuite ce fichier en XRef dans tous les folios

- quand il faut modifier une info commune, on ouvre ce fichier et on édite les attributs du cartouche

- pour les infos du cartouche qui sont spécifiques à chaque folio, on peutt dans chaque folio les ajouter sous la forme d'un bloc (constitué uniquement d'attributs) qui se superpose au cartouche en XRef (ou éventuellement en tant que textes).

 

 

Bonjour,

 

Pour des modifications ou des listes de plans par extraction d'attribut, tout les cartouches sont réalisés avec des attributs.

Dans le cas présent, les parties communes du cartouche changent ainsi que la position des attributs.

 

Même avec un cartouche en XREF, je dois réinsérer le bloc variable dans tous mes fichiers.

  • 4 semaines après...
Posté(e)

bonjour

il y a longtemps j' avais ecrit un petit lisp sans pretention que j' executait pour chaque dessin

mais avec un script on peu l' oautomatiser :

 

 

;;*********************************************************************

(defun c:rplbl ()

(setq oldosmode (getvar "osmode"))

(setvar "osmode" 0)

(setq i0 0)

(setq bl0 (entsel "reperez le bloc à changer"))

(setq entbl0 (entget (car bl0)))

(setq nombl0 (cdr (assoc 2 entbl0)))

 

 

(setq bl1 (entsel "reperez le bloc à inserer"))

(setq entbl1 (entget (car bl1)))

(setq nombl1 (cdr (assoc 2 entbl1)))

(setq newbloc0 (list '(0 . "INSERT") (assoc 2 entbl1) (assoc 10 entbl1) (assoc 41 entbl1) (assoc 42 entbl1) (assoc 43 entbl1) (assoc 50 entbl1)))

 

 

 

 

(setq jsbl (ssget "X" (list (cons 0 "INSERT") (cons 2 nombl0))))

;;(setq jsbl (ssget (list (cons 0 "INSERT") (cons 2 nombl0))))

(repeat (sslength jsbl)

(setq ent0 (ssname jsbl i0))

(setq ptins1 (cdr (assoc 10 (entget ent0))))

(setq entgt0 (entget ent0))

 

(entdel ent0)

 

(setq newbloc (list '(0 . "INSERT") (assoc 2 entbl1) (assoc 8 entgt0) (assoc 10 entgt0) (assoc 41 entgt0) (assoc 42 entgt0) (assoc 43 entgt0) (assoc 50 entgt0)))

(entmake newbloc)

 

(setq i0 (+ i0 1))

 

)

 

 

(setvar "osmode" oldosmode)

)

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é