Aller au contenu

Messages recommandés

Posté(e)

Bonjours,

 

J'aimerais savoir comment faire pour parametrer par défaut la variable système PSLTSCALE sur 0, dés l'ouverture d'AUTOCAD et aussi lors de la création de nouvelles fenétres.

 

D'avance merci.

Posté(e)

Salut,

tu peux aussi dans un répertoire déclaré dans les chemin supports, créer un fichier AutoCAD.lsp

Ce fichier sera chargé à chaque ouverture d'un nouveau dessin si la variable ACADLSPASDOC = 1.

 

Cela te permettras, même si tu ouvres un pancien plan ou un plan de quelqu'un d'autre, d'avoir toujours tes variables comme tu le désires.

 

Dans ce fichier, tu peux écrire des lignes de codes.

 

Pour ta variable, tu écris :

(setvar "PSLTSCALE" 0)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Merci lili2006, mais je veux éviter d'aller toujours dans la fenetre du gestionnaire des types de ligne.

 

rebcao, c'est ce que j'ai fait, mais dés que je créé une nouvelle présentation, je suis obligé à chaque fois d'aller faire un tour dans le gestionnaire des types de ligne (voir post de lili2006).

A moins de copier une présentation existante dans laquelle PSLTSCALE est à 0.

 

Bred, tu semble avoir la réponse que je souhaite. Je suis loin d'être un pro en LISP (même pas au stade débutant) mais j'ai quand même essayé de suivre ton message.

J'ai créer un fichier AutoCAD.lsp (dans l'éditeur VisualLisp d'AUTOCAD) avec seulement ta ligne de code (copier/coller), et je l'ai enregistré dans un de mes repertoires déclaré dans les chemins de support.

J'ai modifié la variable ACADLSPASDOC à 1.

J'ai redémaré AUTOCAD, mais dés que je créer une nouvelle présentation PSLTSCALE est toujour à 1 par défaut ?

 

 

 

Posté(e)
  Citation
Salut,

 

Dans ton fichier AutoCAD.lsp tu dois avoir ceci

	(defun S::STARTUP()
(setvar "PSLTSCALE" 0)
(princ)
)

 

Non non, pas besoin !

(setvar "PSLTSCALE" 0)

suffit !

(tu peux rajouter un (princ) après si tu veux pour la propreté.

 

  Citation
J'ai redémaré AUTOCAD, mais dés que je créer une nouvelle présentation PSLTSCALE est toujour à 1 par défaut ?

ça c'est bizarre...

vérifie ton chemin dans les fichiers support... :casstet:

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut Patrick_35,

  Citation

La variable acadlspasdoc doit être à 1 pour charger automatiquement le fichier AutoCAD.lsp

C'est déjà dit.

il l'a fait.

Mais ça marche pas....

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

  Citation
Dans ton fichier AutoCAD.lsp tu dois avoir ceci

 (defun S::STARTUP()
(setvar "PSLTSCALE" 0)
(princ)
) 

 

Désolé papypus 1985, mais c'est toujours la même chose

 

Bred, j'ai bien mis le fichier AutoCAD.lsp dans un répertoire qui est référencé dans " chemin de recherche de fichiers de support" dans -> outils -> option -> onglet Fichiers.

 

J'ai contourné le probléme en créant une petite macro lier à une icone dans une nouvelle barre d'outils

 

^C^C_PSLTSCALE;0;_REGENALL 

 

que j'utilise aprés avoir créé une nouvelle présentation (sa m'économise 3 à 4 clics)

mais se serait mieux si PSLTSCALE était à 0 par défaut.

Posté(e)

Dans le AutoCAD.lsp, copie ça après (setvar "PSLTSCALE" 0) :

(alert "Acad.lsp chargé !")

 

puis ouvre un nouveau plan (pas besoin de fermer/ouvrir autocad si la variable acadlspasdoc est à 1)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Désolé Bred, mais sa ne change rien

Dans mon nouveau fichier, l'espace objet et ma présentation (present dans mon fichier gabari de départ) on bien PSLTSCALE à 0, mais dés que je récréé une présentation par: Insertion -> Présentation -> Nouvelle présentation, celle-ci à PSLTSCALE à 1 !?!...

Posté(e)
  Citation
Désolé Bred, mais sa ne change rien

Si tu as fait ce que j'écris dessus, que le fichier AutoCAD.lsp est bien enregistré, et si tu n'as pas à l'ouverture de ton plan une boite de dialogue avec dedans marqué AutoCAD.lsp chargé !, c'est que justement ton AutoCAD.lsp n'est pas chargé !

...

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Une autre solution, je regarderais à placer (setvar "PSLTSCALE" 0) dans le fichier AutoCAD.mnl situé dans:

 

C:\Documents and Settings\[surligneur]Ton User[/surligneur]\Application Data\Autodesk\AutoCAD 2008\R17.1\fra\Support\acad.mnl

 

Comme ceci, cette modif ne sera valable que dans ton profil.

 

NB: Dans l'explorateur windows activer dans le menu "Outils" -> "Options des dossiers....", puis dans l'onglet affichage, cocher "Afficher les fichiers et les dossiers cachés" pour pouvoir accéder à ce fichier.

 

Tu peux en profiter pour décocher (rien a voir avec le sujet) "Masquer les extensions des fichiers dont le type est connu" (Cela peut être pratique lorsque l'on veut renommer des extensions de fichiers dans l'explorateur)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

je vois pas le problème !!!

 

En fait il faut justement cocher l'option "utiliser les unités de l'espace papier pour ..." dans Echelle type ligne et mettre une valeur de l'ordre de 0,33

 

et ça marche très bien

 

Christian

 

[Edité le 1/8/2008 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

  Citation
Si tu as fait ce que j'écris dessus, que le fichier AutoCAD.lsp est bien enregistré, et si tu n'as pas à l'ouverture de ton plan une boite de dialogue avec dedans marqué AutoCAD.lsp chargé !, c'est que justement ton AutoCAD.lsp n'est pas chargé !

...

 

Bred, J'ai déplacer mon fichier AutoCAD.lsp dans le répertoire:

C:\Documents and Settings\Ton User\Application Data\Autodesk\AutoCAD 2008\R17.1\fra\Support

(alors que mon répertoire ou était AutoCAD.lsp était bien référencé dans les répertoirs des fichiers support)

et maintenant quand j'ouvre un nouveau plan, j'ai bien le message "Acad.lsp chargé !" .

 

Mais quand je créer une nouvelle présentation:

Insertion -> Présentation -> Nouvelle présentation

celle-ci à PSLTSCALE à 1 !?!...

 

J'ai remarqué aussi , quand j'ouvre un ancien plan dont l'EO et l'ensemble des présentations ont PSLTSCALE à 1 avant l'ouverture, PSLTSCALE de l'EO et la 1ère présentation est passé à 0, mais les autre présentations sont resté à 1 aprés l'ouverture?

 

rebcao, je ne vois pas ou tu veux en venir.

Je veux que les types de lignes aparaisse dans toutes mes présentations (quelque soit l'échelle de mes fenêtres) comme dans l'EO, par conséquent, s'est PSLTSCALE à 0 qui peut me le permettre, et le problême, c'est que par défaut PSLTSCALE est à 1 lors de la création d'une nouvelle fenêtre (à part en copiant une présentation existante).

 

 

 

Posté(e)

Salut,

  Citation
Mais quand je créer une nouvelle présentation:

Insertion -> Présentation -> Nouvelle présentation

celle-ci à PSLTSCALE à 1 !?!...

 

:casstet:

Pige pas...

après avoir ouvert ton plan, et que tu as bien le message "Acad.lsp chargé !", PSLTSCALE est à 1 ?

 

Tu ne te serais pas tromper dans l'orthographe de PSLTSCALE dans AutoCAD.lsp ?

(désolé, je cherche....)

 

Si tu copie la ligne (setvar "PSLTSCALE" 0) dans ton AutoCAD.lsp, et que tu la colle dans la ligne de commande, tu as bien la variable qui passe à 0 ?

 

Tu n'as pas mis de parenthèse en trop, de point virgule ou autre dans le fichier AutoCAD.lsp ?

(fait moi une copie de ce que tu as écris et colle le dans un message dessous....)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Bonjour,

 

Chaque présentation a sa valeur PSLTSCALE qui lui est propre quand tu crées une présentation la valeur par defaut est 1

tu peux creer une macro pour mettre PSLTSCALE à 0 pour le creation d'une présentation

^C^C_layout;_new;\_PSLTSCALE;0;

Cyprien

Utilisateur AutoCAD depuis la R12

Longue Vie à CADxp

 

Posté(e)
  Citation

Chaque présentation a sa valeur PSLTSCALE qui lui est propre quand tu crées une présentation la valeur par defaut est 1

Ah ben oui, tiens, bien vu !

C'est idiot... et même pas expliqué dans l'aide !

 

... il doit bien y avoir une solution....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)
  Citation
NON ! Cette valeur est identique pour tout le dessin. Toutes les fenêtres utilisent cette valeur.

 

Sa valeur initiale dépend du dessin gabarit de démarrage.

 

Eh non, recao, je confirme, même avec le gabarit à 0, un nouvelle présentation à cette variable à 1.....

(testé sous 2009)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Bred, pour moi, tes lignes dans AutoCAD.lsp marche correctement, j'ai vérifier justement en changeant la valeur de PSLTSCALE, mais apparement cela n'affecte que l'onglet dans lequel la derniére sauvegarde à eu lieu (pour l'ouverture d'un ancien plan).

 

Effectivement, un fichier peu avoir une valeur de PSLTSCALE différente dans chacun de ses onglets.

 

Par conséquent, je pense que ta ligne de code ne peut pas modifier la valeur de PSLTSCALE dans l'ensemble des onglets d'un ancien plan à son ouverture.

 

Aprés reflexion je pense que mon problême vient de la commande: _layout

qui créé une nouvelle présentation avec PSLTSCALE avec 1 par défaut, alors il faudrait modifier le code de la commande _layout (impossible!!) ou de rajouter des commandes supplémentaire à la commande: Nouvelle présentation

Posté(e)

  Citation
tu peux creer une macro pour mettre PSLTSCALE à 0 pour le creation d'une présentation

 
^C^C_layout;_new;\_PSLTSCALE;0; 

 

Et non papyrus 1985, déja fait, il faut activer l'onglet de la nouvelle présentation avant de modifier PSLTSCALE, et je ne sait pas commant l'écrire!

Posté(e)

Re,

  Citation
Par conséquent, je pense que ta ligne de code ne peut pas modifier la valeur de PSLTSCALE dans l'ensemble des onglets d'un ancien plan à son ouverture.

En effet,

Ci dessous un lisp qui le fait, mais plus il y a d'onglet, plus c'est long... (et je ne parle pas de la regen)

A mettre dans AutoCAD.lsp :

;;; Active chaque présentation et change valeur de PSLTSCALE
(vl-load-com)
(defun PUT-PSTSCALE (val / AC-DOC AC-LAY)
 (setvar "PSLTSCALE" val)
 (setq Ac-Doc (vla-get-activedocument (vlax-get-acad-object))
Ac-Lay (vla-get-activelayout Ac-Doc))
 (vlax-for Lay (vla-get-layouts Ac-Doc)
   (vla-put-ActiveLayout Ac-Doc Lay)
   (setvar "PSLTSCALE" val)
   )
 (vla-put-ActiveLayout Ac-Doc Ac-Lay)
 (princ)
)

(PUT-PSTSCALE 0)

 

par contre, pour les nouveau onglet, faudrais un réacteur.....

et moi, les réacteurs...

Si Patrick_35 repasse par là.....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut

 

  Citation
Si Patrick_35 repasse par là.....

Un réacteur qui force la variable PSLTSCALE à 0 lors de chaque changement de présentation.

Pour activer le réacteur --> PSLTON

Pour désactiver le réacteur --> PSLTOFF

 

(defun patrick:changer_layout(rea lay)
 (or (eq (car lay) "Model")
   (setvar "psltscale" 0)
 )
)

(defun c:pslton()
 (if patrick:reacteur_lay
   (princ "\nLe réacteur de changement de Présentation pour la variable PSLTSCALE est déjà actif.")
   (progn
     (setq patrick:reacteur_lay (vlr-miscellaneous-reactor nil (list (cons :vlr-layoutswitched (function patrick:changer_layout)))))
     (princ "\nLe réacteur de changement de Présentation pour la variable PSLTSCALE est activé.")
   )
 )
 (princ)
)

(defun c:psltoff()
 (if patrick:reacteur_lay
   (progn
     (vlr-remove patrick:reacteur_lay)
     (setq patrick:reacteur_lay nil)
     (princ "\nLe réacteur de changement de Présentation pour la variable PSLTSCALE est désactivé.")
   )
   (princ "\nLe réacteur de changement de Présentation pour la variable PSLTSCALE est déjà désactivé.")
 )
 (princ)
)

 

Bred.

Ton lisp est bien, mais je me dit qu'Autocad doit quand même écrire quelque part la valeur de psltscale en fonction de la présentation. J'ai beau regarder en vlisp ou avec les codes dxf dans la table des layouts. Je ne trouve rien :casstet:

 

ps : encore un effort. Les réacteurs ne sont pas si terrible à faire ;)

 

@+

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

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é