Aller au contenu

Références des plans et mise à jour de block


Messages recommandés

Posté(e)

Bonjour,

Je voudrais aborder un sujet ici pour améliorer notre workflow.

Pour le moment sur nos plans, nous avons un mtext avec du texte qui ne change jamais comme l'adresse de l'entreprise, ainsi que les références du plan qui elles peuvent changer.

Je pense notamment à la date du plan.

Le problème actuellement c'est que à chaque fois que nous modifions un plan, nous devons mettre à jour la date de l'ensemble des plans du projet ce qui peut prendre un temps certain.

Par contre, l'indice du plan est modifié que sur les plans modifiés.

 

Du coup j'aimerais savoir s'il était possible de faire quelque chose à ce sujet ? J'avais pensé à une variable, mais on ne peut pas en mettre dans un texte multiligne de mémoire ?

Est-il possible d'imaginer une fonction qui mette à jour un block sur plusieurs plans ?

 

Merci pour vos éclairement.

 

 

Posté(e)

Coucou,

Il est possible de récupérer la date actuelle via la variable système "CDATE". Je me suis créé une fonction pour la récupérer de manière plus lisible :

	; Permet de récupérer la date et l'heure au moment de l'exécution sous la forme "XX/XX/XXXX - XX:XX:XX" :
; La fonction (get-date) ne possède aucun argument

;--- Renvoie la date et l'heure sous la forme "JJ/MM/AAAA - HH:MM:SS"
(defun Get-Date (/ Date Jour Heure)

	(setq Date (rtos (getvar "CDATE") 2 6)
	      Jour (strcat (substr Date 7 2) "/" (substr Date 5 2) "/" (substr Date 1 4))
	      Heure (strcat (substr Date 10 2) ":" (substr Date 12 2) ":" (substr Date 14 2))
	      Date (strcat Jour " - " Heure)
	)

)

Ensuite la date est-elle située dans un bloc avec attribut, ou bien dans un texte ? Si c'est un bloc, il suffit de sélectionner tes blocs sur l'ensemble des présentations via un (ssget) filtré (faire attention si ton bloc est dynamique ou non !) pour ensuite modifier l'attribut avec la valeur

(substr (get-date) 1 10)

En revanche si c'est dans un texte, c'est plus délicat (faisable mais délicat)..

Par contre je ne comprends pas dans quelle mesure les plans n'ayant pas changé d'indice ont-ils besoin de changer de date ? Théoriquement seul les plans que l'on imprime ont besoin de changer de date, nan ?
Du moins dans mon fonctionnement de travail je ne modifie la date des cartouches que si je dois les imprimer (donc changement d'indice) car comme cela, les plans ayant été imprimé plus tôt et qui sont toujours bon à la date d'aujourd'hui conservent leur date d'impression réelle...

Autrement si tu as vraiment la même date dans tous tes plans et qu'elle doit correspondre à la date actuelle, tu peux utiliser un champ dynamique (fonctionne aussi bien dans un texte que dans un attribut) avec la catégorie du champ "Date et heure", tu choisis "Date", et le format de la date qui te convient et du coup ton champ affichera obligatoirement la date d'aujourd'hui.

Bisous,
Luna

Posté(e)

Merci pour ton retour et ton idée pour la date !

Enfaite c'est nos clients et leurs conseils qui demandent, en règle général, que l'ensemble des plans aient la même date afin que cela ne pose pas de problème à l'utilisateur final, le particulier.

 

Je me permet de joindre l'état actuel des références dans nos présentations.

Dessin2.dwg

Posté(e)

A titre professionnel :

cartouche avec des attributs, et avec un formulaire, je contrôle les cartouches par présentations ou en masse

tu as qu'a faire un bouton (ou plusieurs pour chaque chose si tu as la foie) qui va renseigner les attributs des blocs des différentes présentations😉

 

Posté(e)

Sinon je pensais faire un block de référence à la racine du répertoire et modifier ce block lorsque la date change.

Reste la question de l'indice, il faut que je trouve comment mettre un attribue indice dans le block.

Posté(e)

ben un mtext ou un attribut c'est "juste" un texte à insérer... ou dans ton cas peut etre un champs !

pour la date dans un champs : dans la catégorie Date et heure puis date.

Pour le chemin de fichier : catégorie Document et nom de fichier

pour l'indice tu n'a prendre la dernière lettre de ton fichier par exemple

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

Merci pour ces informations.

Comment peut-on afficher que la dernière lettre du fichier pour le coup dans un champ ?

Edit : j'ai trouvé avec les expressions diesel, mais du coup est-ce que quelqu'un sait comment obtenir le nom du dossier parent en diesel ?

Par exemple j'ai .../2021-11-22/dessing.dwg, il faudrait que je récupère "2021-11-22".

Modifié par Hydro8
Posté(e) (modifié)

Coucou,

Tu peux aller voir ce sujet :

Il faut utiliser un champ avec une expression DIESEL. Tu peux utiliser les fonctions (substr) et (strlen) pour y parvenir avec quelque chose du genre (non testé) :

$(substr,$(getvar,dwgname),$(-,$(strlen,$(getvar,dwgname)),4),1)

Le $(-,...,4) c'est à cause de l'extension de fichier qui fait 4 caractères ".dwg".

Bisous,
Luna

Modifié par Luna
Posté(e)
il y a 33 minutes, Hydro8 a dit :

Par exemple j'ai .../2021-11-22/dessing.dwg, il faudrait que je récupère "2021-11-22".

Alors le soucis principal c'est que je présume que le nom de ton fichier .dwg ne fait pas toujours le même nombre de caractères, n'est-ce pas ?
Les expressions DIESEL ne permettent pas la recherche de caractères spécifiques et donc d'avoir une expression fonctionnelle peut importe le nombre de caractères de la chaîne. Il y a bien la fonction (index) mais elle ne recherche que les chaînes de caractères qui sont séparées par des "," donc cela ne fonctionnera pas pour toi.
Le début de la chaîne possède-t-il un nombre de caractères peut importe le nom du fichier ? Si c'est le cas il suffit de partir du début et non de la fin pour récupérer les infos.

$(substr,$(getvar,dwgname),$(+,n,1),10)

Avec n le nombre de caractères précédent le "2021...".

Bisous,
Luna

Posté(e)
il y a 8 minutes, Luna a dit :

Alors le soucis principal c'est que je présume que le nom de ton fichier .dwg ne fait pas toujours le même nombre de caractères, n'est-ce pas ?
Les expressions DIESEL ne permettent pas la recherche de caractères spécifiques et donc d'avoir une expression fonctionnelle peut importe le nombre de caractères de la chaîne. Il y a bien la fonction (index) mais elle ne recherche que les chaînes de caractères qui sont séparées par des "," donc cela ne fonctionnera pas pour toi.
Le début de la chaîne possède-t-il un nombre de caractères peut importe le nom du fichier ? Si c'est le cas il suffit de partir du début et non de la fin pour récupérer les infos.

$(substr,$(getvar,dwgname),$(+,n,1),10)

Avec n le nombre de caractères précédent le "2021...".

Bisous,
Luna

Merci pour ta réponse rapide.

Malheureusement non, que ça soit le nom du fichier ou le chemin d'accès, les deux sont variables.

Je vais essayé de mettre la date à la fin du fichier, ça sera plus long que de le faire au niveau du dossier mais je n'ai pas vraiment le choix.

Posté(e)

Sinon essaye avec la variable "DWGPREFIX", normalement le nom du fichier n'y est pas et donc tu as juste à récupérer les 10 derniers caractères je pense.
désolée de ne pas y avoir songé plus tôt..

Bisous,
Luna

  • Like 1
Posté(e)
il y a 5 minutes, Luna a dit :

Sinon essaye avec la variable "DWGPREFIX", normalement le nom du fichier n'y est pas et donc tu as juste à récupérer les 10 derniers caractères je pense.
désolée de ne pas y avoir songé plus tôt..

Bisous,
Luna

Merci beaucoup ! Cela fonctionne très bien avec la variable "DWGPREFIX".

Posté(e)
Le 22/11/2021 à 12:53, Luna a dit :

Alors le soucis principal c'est que je présume que le nom de ton fichier .dwg ne fait pas toujours le même nombre de caractères, n'est-ce pas ?
Les expressions DIESEL ne permettent pas la recherche de caractères spécifiques et donc d'avoir une expression fonctionnelle peut importe le nombre de caractères de la chaîne. Il y a bien la fonction (index) mais elle ne recherche que les chaînes de caractères qui sont séparées par des "," donc cela ne fonctionnera pas pour toi.
Le début de la chaîne possède-t-il un nombre de caractères peut importe le nom du fichier ? Si c'est le cas il suffit de partir du début et non de la fin pour récupérer les infos.

$(substr,$(getvar,dwgname),$(+,n,1),10)

Avec n le nombre de caractères précédent le "2021...".

Bisous,
Luna

@Luna On peut faire une recherche de caractère mais c'est loin d'être souple.

Exemple >>> ici <<< dans mon programme de renommage des onglets et des folios dans un cartouche automatiquement [LISP/Diesel ou Full Lisp].

 

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é