Aller au contenu

Créatoin de calque avec couleurs, épaisseurs...


Messages recommandés

Posté(e)

Bonsoir tous,

 

Là je me frappe la honte du siècle mais je dois l'avouer... je ne sais pas créer un calque en lisp.

 

J'ai beau chercher mais tout ce que je trouve ne marche pas... Je voudrai créer un calque avec une couleur précise,disons le 1 pour le rouge, avec un type de ligne dots, echelle 0.5 et épaisseur 0.18 .

J'ai cru comprendre que tout se passait comme sur la ligne de code en entrant les argumants les uns après les autres... Mais j'ai des message d'erreurs. En plus, selon les topic que je récupère sur Cadxp, parfois la syntaxe change... Un coup y'a des tiret devant les commandes, parfois des underscore (tiret du 8)... Un coup des guillemets pour les arguments, parfois non...

 

Quelqu'un peut formater mon esprit une bonne fois pour toute ?

 

Voilà mon lisp :

 

(defun c:ccalque ()
(setq nl (getstring "Nom du calque ? :"))
(command "-calque" "n" nl  "_co" 1 ""  "")
) 

 

Merci à vous.

 

PS Edit : j'ai lu le post de Fomula1 mais même en faisant un copier coller de la réponse de (gile) je n'ai pas le résultat escompté... Ouverture du manager puis plus rien...

 

Commande: BETON-CSP-COUPE Commande inconnue "BETON-CSP-COUPE". Appuyez sur F1

pour obtenir de l'aide.

 

.../...

 

[Edité le 24/2/2008 par phil_vsd]

"La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.

Posté(e)

Salut,

 

La fonction command requiert comme arguments le nom de la commande et les options requises par la commande (en général comme on les entrerait à la ligne de commande). Il faut parfois faire quelques essais.

 

Ces arguments peuvent avoir parfois différentes formes :

 

- le nom de commande et les options sont des chaînes (string) qu'on peut spécifier soit dans la langue de la version :

(command "calque" "nouv" "MonCalque" "couleur" 1 "MonCalque" "")

soit en langage international, compatible avec toutes les versions (les commandes et options en anglais avec un underscore) :

(command "_layer" "_new" "MonCalque" "_color" 1 "MonCalque" "")

Comme à la ligne de commande, les options peuvent être spécifiées par leurs abréviations :

(command "_layer" "_n" "MonCalque" "_co" 1 "MonCalque" "")

Le tiret (-) devant le nom de commande qui sert à avoir certaines commandes sans la boite de dialogue est nécessaire à la ligne de commande et dans les macros, il est inutile en LISP.

 

- les autres arguments peuvent être spécifiés sous fourme de chaînes, de nombres, de listes (points), de variables ou d'expressions LISP.

(command "_line" "0,0" "10,0" "")

ou

(command "_line" '(0 0) '(10 0) "")

ou

(setq p1 '(0 0))

(command "_line" p1 (polar p1 0.0 10) "")

 

Mais, mieux que command, pour créer des entités (graphiques ou non), tu peux utiliser la fonction entmake (avec les groupes DXF) :

 

(entmake '((0 . "LAYER") ; type d'entité
   (100 . "AcDbSymbolTableRecord") ; marqueur de sous classe
   (100 . "AcDbLayerTableRecord") ; marqueur de sous classe
   (2 . "MonCalque") ; nom du calque
   (70 . 0) ; drapeau d'état (gelé, vérouillé...)
   (62 . 1) ; couleur
   (6 . "AXES") ; type de ligne
   (370 . 18) ; épaisseur de ligne
  )
) 

 

[Edité le 24/2/2008 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Voici un aperçu de ce que tu peus aussi faire

 

(defun c:laya ()

(command "layer" "n" "BETON-CSP-COUPE" "c" "2" "BETON-CSP-COUPE" "l" "continuous" "BETON-CSP-COUPE" "lw" "0.5" "BETON-CSP-COUPE" "")

);defun laya

 

ATTENTION, ce lisp marche sur des version anglaise de autocad, il faut traduire les commandes pour les versions fr

 

(defun c:nom de la commande ()

(command "layer" "n" "nom du layer" "c" "2" "nom du layer" "l" "continuous" "nom du layer" "lw" "0.5" "nom du layer" "")

);defun nom de la commande

Posté(e)

Merci à vous.

 

C'est vrai que de passer par les DXF c'est plus long mais il me semble plus précis. Quant aux codes de Formula1 je les ai transformés pour qu'il passent :

 

(defun c:alpha ()

(command "layer" "n" "alpha" "co" "1" "alpha" "tl" "continuous" "alpha" "ep" "0.5" "alpha" "")

)

 

"lw" est passé en "ep"

"l" est passé en "tl"

 

A bientôt.

"La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.

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é