Aller au contenu

Personnalisation des commandes dans une palette


Messages recommandés

Posté(e)

Bonjour à tous

Je cherche à personnaliser ma palette.

Exemple, j'ai placé dans ma palette l'outil ligne mais est-il possible que le point d'insertion de ma ligne soit à 0,0

Dans la chaine de commande j'ai mis : ^C^C_line;0 0 mais cela ne fonctionne pas.

Si vous pourriez aussi me dire ou je peux trouver les paramètres disponibles pour personnaliser les commandes

Merci d'avance pour votre aide

 

Bonne journée

 

Posté(e)
Posté(e)
Il y a 1 heure, Eric a dit :

Bonjour,

Dans la macro il manque une virgule entre les deux 0 et un point-virgule après.

^C^C_line;0,0;

Je vous invite aussi à consulter ce document :

https://knowledge.autodesk.com/fr/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2020/FRA/AutoCAD-LT/files/GUID-D991386C-FBAA-4094-9FCB-AADD98ACD3EF-htm.html

 

J'ai encore une question

Aprés que la commande ^C^C_line;0,0; est terminée peut-on lancer une deuxième commande

Merci

 

Posté(e)
Il y a 23 heures, Eric a dit :

Oui, c'est possible. Dans le cas de la commande ligne il faut ajouter un \ pour faire une pause et permettre à l'utilisateur de sélectionner le deuxième point puis ensuite on peut enchaîner sur une autre commande.

^C^C_line;0,0;\;_move;

Merci

Posté(e)
Le 12/12/2021 à 16:03, Eric a dit :

Oui, c'est possible. Dans le cas de la commande ligne il faut ajouter un \ pour faire une pause et permettre à l'utilisateur de sélectionner le deuxième point puis ensuite on peut enchaîner sur une autre commande.

^C^C_line;0,0;\;_move;

Bonjour Eric

J'ai encore une question, j'ai essayé de personnaliser une commande qui dessine une polyligne avec une épaisseur de 50

^C^CPLINEWID;50;_pline jusque la cela fonctionne mais est-il possible quand j'ai terminé ma polyligne de revenir sur le calque 0.

 

Merci

Posté(e)
il y a une heure, Luna a dit :

Coucou,

Essaye avec la variable système CLAYER (comme tu l'as fait pour PLINEWID) soit ^C^CPLINEWID;50;_PLINE;\;CLAYER;"0"; ?

Bisous,
Luna

Bonjour Luna

J'ai testé mais cela ne fonctionne pas

 

Merci quand même

 

Posté(e)

une autre solution serait par de la prog pure est simple ^^"

(defun c:NOMDELACOMMANDE ()
	(setvar "PLINEWID" 50)
	(command "_PLINE" pause)
	(setvar "CLAYER" "0")
	(princ)
)

Tu définis le nom de la commande que tu désires (il faut remplacer NOMDELACOMMANDE par le nom de la commande que tu souhaites, en conservant le 😄) et tu enregistres le fichier en .lsp
Après chat, tu fais APPLOAD dans AutoCAD et tu spécifies ton fichier .lsp dans les fichiers à charger au démarrage (le bouton "Contenu" sous la valise). Tu peux même créer un bouton ou un alias de commande pour cela et chat fera ce que tu as demandé. Sinon, tu attends qu'une personne qui maîtrise davantage le script que moi passe par là et trouve une solution si solution il y a... 🙂

Bisous,
Luna

Posté(e)
Il y a 11 heures, Luna a dit :

une autre solution serait par de la prog pure est simple ^^"

(defun c:NOMDELACOMMANDE ()
	(setvar "PLINEWID" 50)
	(command "_PLINE" pause)
	(setvar "CLAYER" "0")
	(princ)
)

Tu définis le nom de la commande que tu désires (il faut remplacer NOMDELACOMMANDE par le nom de la commande que tu souhaites, en conservant le 😄) et tu enregistres le fichier en .lsp
Après chat, tu fais APPLOAD dans AutoCAD et tu spécifies ton fichier .lsp dans les fichiers à charger au démarrage (le bouton "Contenu" sous la valise). Tu peux même créer un bouton ou un alias de commande pour cela et chat fera ce que tu as demandé. Sinon, tu attends qu'une personne qui maîtrise davantage le script que moi passe par là et trouve une solution si solution il y a... 🙂

Bisous,
Luna

Bonjour Luna

Super c'est impeccable.

Est-il possible aussi de définir l’échelle du type de ligne?

Un tout grand merci

Bonne journée

Posté(e)
Il y a 4 heures, Luna a dit :

Bien sûr, aide-toi du fichier réalisé par rebcao faisant la liste des variables systèmes AutoCAD : Liste des variables systèmes. Pour l'échelle il me semble que c'est LTSCALE. Il te suffit d'ajouter une ligne (setvar) là où tu le souhaites (avant le lancement de la (command) ou après).

Bisous,

Luna

Re bonjour

J'y suis presque

mais quand je termine la commande Pline le reste du code (setvar "CPLINEWID" 0) n'est pas pris en compte.

Aurais-tu une idée.

merci

 

(defun c:ZONE-TD-PLAN ()
	(setvar "PLINEWID" 50) ; Largeur global de la polyligne
	(setvar "CELTSCALE" 25) ; Echelle du type de ligne
	(command "_layer" "_new" "COL_3_Tableaux-zonage" "") ; Création du calque
	(setvar "CLAYER" "COL_3_Tableaux-zonage") ; Se place sur le calque pour dessiner la polyligne
	(command "_PLINE" pause) ; Dessiner la polyligne
	(setvar "CLAYER" "0") ; Se place sur le calque 0
	(setvar "CELTSCALE" 1) ; Redéfinit l'échelle à 1
	(setvar "CPLINEWID" 0) ; Redéfinit la largeur global à 0 <------ Ne fonctionne pas
	
	(princ)

 

Posté(e)
Il y a 1 heure, Olivier Eckmann a dit :

Bonjour,

 

Tu as écrit CPLINEWID au lieu de PLINEWID

 

Olivier

Bonjour Olivier

Malgré cela je n'arrive pas à redéfinir la largeur à 0 après la commande Pline

 

Merci

Posté(e)

Coucou,

Déjà si je me base uniquement sur ce que tu as publié, il manque la dernière parenthèse pour le (defun) mais je suppose tout de même que c'est uniquement une erreur de sélection lors du copier/coller. Autrement je pense avoir compris le soucis. De manière générale on utilise une boucle (while) avec les (command "_PLINE") afin de s'adapter au nombre variable de sommets. Ici le programme créé une polyligne avec un sommet unique, puis essaye de redéfinir les variables "CLAYER", "CELTSCALE" et "PLINEWID" alors qu'AutoCAD est toujours en train de créer une polyligne. Donc pour CLAYER et CELTSCALE pas de problème il arrive à gérer, par contre pour PLINEWID il est obligé de conserver la valeur à 50 pour continuer à tracer la polyligne correctement 😉

Essaye plutôt comme ceci :

(defun c:ZONE-TD-PLAN (/ pt0 pt)
	(setvar "PLINEWID" 50) ; Largeur global de la polyligne
	(setvar "CELTSCALE" 25) ; Echelle du type de ligne
	(command "_layer" "_new" "COL_3_Tableaux-zonage" "") ; Création du calque
	(setvar "CLAYER" "COL_3_Tableaux-zonage") ; Se place sur le calque pour dessiner la polyligne
	(command "_PLINE" (setq pt0 (getpoint "\nSpécifiez le point de départ : "))) ; Dessiner la polyligne
	(while (setq pt (getpoint pt0 "\nPoint suivant : "))
		(command pt)
		(setq pt0 pt)
	)
	(command)
	(setvar "CLAYER" "0") ; Se place sur le calque 0
	(setvar "CELTSCALE" 1) ; Redéfinit l'échelle à 1
	(setvar "PLINEWID" 0) ; Redéfinit la largeur global à 0
	
	(princ)
)

Une autre solution serait celle-ci pour conserver toutes les options prévue par une commande grâce aux options pause (autrement dit, cela simule un lancement de commande parfaitement classique) :

(command "_PLINE" pause)
(while (/= (getvar "CMDACTIVE") 0)
	(command pause)
)

en remplacement de :

(command "_PLINE" (setq pt0 (getpoint "\nSpécifiez le point de départ : ")))
(while (setq pt (getpoint pt0 "\nPoint suivant : "))
	(command pt)
	(setq pt0 pt)
)
(command)

Bisous,
Luna

  • Like 1
Posté(e)
Il y a 2 heures, Luna a dit :

Coucou,

Déjà si je me base uniquement sur ce que tu as publié, il manque la dernière parenthèse pour le (defun) mais je suppose tout de même que c'est uniquement une erreur de sélection lors du copier/coller. Autrement je pense avoir compris le soucis. De manière générale on utilise une boucle (while) avec les (command "_PLINE") afin de s'adapter au nombre variable de sommets. Ici le programme créé une polyligne avec un sommet unique, puis essaye de redéfinir les variables "CLAYER", "CELTSCALE" et "PLINEWID" alors qu'AutoCAD est toujours en train de créer une polyligne. Donc pour CLAYER et CELTSCALE pas de problème il arrive à gérer, par contre pour PLINEWID il est obligé de conserver la valeur à 50 pour continuer à tracer la polyligne correctement 😉

Essaye plutôt comme ceci :

(defun c:ZONE-TD-PLAN (/ pt0 pt)
	(setvar "PLINEWID" 50) ; Largeur global de la polyligne
	(setvar "CELTSCALE" 25) ; Echelle du type de ligne
	(command "_layer" "_new" "COL_3_Tableaux-zonage" "") ; Création du calque
	(setvar "CLAYER" "COL_3_Tableaux-zonage") ; Se place sur le calque pour dessiner la polyligne
	(command "_PLINE" (setq pt0 (getpoint "\nSpécifiez le point de départ : "))) ; Dessiner la polyligne
	(while (setq pt (getpoint pt0 "\nPoint suivant : "))
		(command pt)
		(setq pt0 pt)
	)
	(command)
	(setvar "CLAYER" "0") ; Se place sur le calque 0
	(setvar "CELTSCALE" 1) ; Redéfinit l'échelle à 1
	(setvar "PLINEWID" 0) ; Redéfinit la largeur global à 0
	
	(princ)
)

Une autre solution serait celle-ci pour conserver toutes les options prévue par une commande grâce aux options pause (autrement dit, cela simule un lancement de commande parfaitement classique) :

(command "_PLINE" pause)
(while (/= (getvar "CMDACTIVE") 0)
	(command pause)
)

en remplacement de :

(command "_PLINE" (setq pt0 (getpoint "\nSpécifiez le point de départ : ")))
(while (setq pt (getpoint pt0 "\nPoint suivant : "))
	(command pt)
	(setq pt0 pt)
)
(command)

Bisous,
Luna

Bonjour Luna

 

C'est top

Un tout grand merci

 

Bonne journée

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é