Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Je voudrais savoir comment fait-on pour suspendre un programme LISP ?

Ex: Je lance le programme qui me créé un bloc sous autocad et qui l'insère ensuite. Le bloc se créé mais ne s'insère pas:

 

; création de hachure

(command "-hachures" "p" "s" "e" "" "0,0" "0,1" "1,1" "1,0" "c" "" "")

; création du bloc

(command "-bloc" "nom bloc" "0,0" "d" "")

; édition du bloc pour ajouter les attributs

(command "-bedit" "nom bloc" "-attdef" "" "etiquette1" "invite1" "valeur1" "0,0" "0.3" ""

"-attdef" "" "etiquette2" "invite2" "valeur2" "0,0" "0.3" ""

"-attdef" "" "etiquette3" "invite3" "valeur3" "0,0" "0.3" "" "bclose" "")

; insertion du bloc:

(command "-inserer" "nom bloc")

 

Comment faire ?

 

Par la suite j'aimerai remplacer les attributs écrite en dur par des valeurs tirées des propriétés de polyligne (périmètre, Aire ).

 

Comment arriver à sortir l'aire et le pétimètre d'une polyligne en LISP ?

 

Cordialement .

 

TitOoN :casstet:

Posté(e)

Salut,

 

Pour insérer ton bloc avec la fonction LISP command, il faut lui passer comme arguments tous les arguments que tu donnes quand tu fait -inserer à la ligne de commande :

 

- le nom du bloc, le point d'insertion, le facteur d'échelle en X, celui en Y et l'angle de rotation :

 

(command "_.insert" "nom bloc" pt_insertion echX echY angle) 

 

Pour l'aire et le périmètre, on suppose que la variable pline stocke une polyligne (récupérée par (entlast), (car (entsel)) ou autre), il est possible de se servir de la commande AIRE (_area) et de récupérer les valeurs dans les variables système AREA et PERIMETER :

 

(command "_.area" "_object" pline) 
(setq perimetre (getvar "PERIMETER")
aire (getvar "AREA")
)

 

On peut aussi transformer le "nom d'entité" de la polyligne en "vla-object" et récupérer les propriétés "area" et "length" :

 

 (setq vla-pline (vlax-ename->vla-object pline)
     perimetre (vla-get-length vla-pline)
     aire (vla-get-area vla-pline)

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

Posté(e)

Yeah... je pense que tu as trouvé une chose qui me bloqué, seulement pour l'insersion du bloc je veux que ce soit moi qui donne le point d'insersion (manuellement)...C'est à ce moment là que ca ne fonctionne pas.

 

Cordialement..

 

TitOoN.. :casstet:

Posté(e)

... ou tu peux demander de choisir le point d'insertion AVANT de lancer l'insertion du bloc :

 

 (setq pt (getpoint "\n Point d'insertion du Bloc :"))
(command "_.insert" "nom bloc" pt echX echY angle)

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

Posté(e)

Bonjour,

 

je n'arrive pas à mettre la commande sur pause au moment ou je veux insérer mon bloc manuellement, c'est à dire avec la sourie ... :P

HELP ME ...

 

Cordialement...

 

TitOoN

Posté(e)

????

 

... pour la pause (gile) t'as répondu juste au dessus (???)

 

... ou alors si tu veux tout rentré (c'est à dire le point d'insert, l'echelle et la rotation) tu fait :

 

(command "_.insert" "nom bloc" pause pause pause pause)

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

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é