Aller au contenu

Didier-AD

Membres
  • Compteur de contenus

    130
  • Inscription

  • Dernière visite

Didier-AD's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. Il y a une amélioration par rapport à (Command "_.Undo" "1") c'est que je n'ai plus de message d'erreur ; je pense donc qu'avec vl_cmdf AutoCAD sait qu'il n'a pas le droit de lancer une commande à l'intérieur d'un réacteur sur commande et donc il ne l'exécute pas par contre il n'annule pas la commande etirer merci quand même
  2. ben oui mais le rectangle initial il a été modifié par la commande, justement; quoi que..... en utilisant les réacteurs de début de commande et de fin de commande çà doit pouvoir marcher.... çà nécessite toutefois de mémoriser l'état avant tout action... si j'ai rien de plus simple je creuse cette piste
  3. Salut, çà faisait longtemps que je n'étais pas venu vous voir, me revoici avec un petit problème je cherche une solution pour revenir à un état initial si une modification d'un objet par une command autocad ne me satisfait pas je prends un exemple simple pour faire comprendre mon problème imaginons une fonction qui crée un rectangle (lwpolyline) à partir de deux points de sa diagonale jusque là pas de problème. Dans cette fonction, on effectue un test : si le périmètre du rectangle est supérieur à une valeur maxi, on affiche un message et on ne dessine rien. jusque là, çà va encore je sais implémenter un réacteur sur commande de façon à ce que mon rectangle reste rectangle après avoir étiré un de ses coins. (avoir un comportement du rectangle un peu comme les fenêtre d'espace papier) jusque là çà va toujours là ou je bloque c'est que je voudrais que si le nouveau rectangle a un périmètre supérieur à la longueur maxi le rectangle initial se redessine ; autrement dit annuler complètement la commande ETIRER ou GRIP_STRETCH Inutile de m'écrire le code pour un rectangle, en réalité ma figure est beaucoup plus complexe mais le problème reste le même : En gros, il s'agit de pouvoir lancer UNDO ou son équivalent dans un réacteur sur fin de commande (et si je pose la question c'est qu'autoCAD n'en veut pas) merci pour toute idée
  4. Salut, et si tu lances ta macro VBA avec AutoCAD et non pas avec le LISP, est-ce que le problème se produit également ? parce que dans ce cas, il faudrait voir du coté de ta macro....
  5. bonjour Ben voilà qui simplifie le tout merci Gile
  6. J'ai retrouvé la fonction c'est vl-symbol-name si les lignes de ton fichier sont de la forme 100-201 201-302 alors tu peux utiliser ce code modifié (defun c:modifietextes (/ nf fich sligne lligne js n ent) (setq nf (getfiled "Fichier de conversion" "" "TXT" 0) fich (open nf "r") ) (while (setq sligne (read-line fich)) (setq lligne (read (strcat "(" sligne ")"))) (if (= 'SYM (type (car lligne))) (setq lligne (mapcar 'vl-symbol-name lligne)) ) (setq js (ssget "X" (list (cons 0 "*TEXT") (cons 1 (car lligne)))) n 0 ) (repeat (if js (sslength js) 0) (setq ent (entget (ssname js n)) ent (subst (cons 1 (cadr lligne)) (assoc 1 ent) ent) n (1+ n) ) (entmod ent) ) ) (close fich) ) si par hasard, il existe des lignes où le tiret (-) n'existe pas alors, (setq lligne (read (strcat "(" sligne ")"))) va trouver des nombres et non plus des symboles et il faudra alors traiter différemment en cas de besoin, fais signe
  7. Tu penses bien que j'ai essayé et çà marche j'ai cependant utilisé un fichier dans lequel il y a déjà les guillemets comme dans la question de départ si les guillemets ne sont pas présents dans le fichier, 100-002 est alors reconnu comme un symbole ; il faut alors utiliser une fonction vl dont j'ai oublié le nom pour transformer ce nom de symbole en chaine
  8. Bonjour essaie çà, çà devrait marcher avec ce que tu demandes (defun c:modifietextes (/ nf fich sligne lligne js n ent) (setq nf (getfiled "Fichier de conversion" "" "TXT" 0) fich (open nf "r") ) (while (setq sligne (read-line fich)) (setq lligne (read (strcat "(" sligne ")")) js (ssget "X" (list (cons 0 "*TEXT") (cons 1 (car lligne)))) n 0 ) (repeat (if js (sslength js) 0) (setq ent (entget (ssname js n)) ent (subst (cons 1 (cadr lligne)) (assoc 1 ent) ent) n (1+ n) ) (entmod ent) ) ) (close fich) )
  9. Et même avec une orthographe correcte..... Cà c'est classe ! Bravo Bred.
  10. Bonjour, Dans les deux premiers exemples, tu utilises "_F" ou "_W" comme clef de sélection de mémoire "_F" signifie Fence ou trajet en Français "_W" signifie Window ou Fenêtre dans le premier cas, seuls les objets traversés par ton trajet, donc le segment défini par tes deux points sont sélectionnés dans le second cas, seuls les objets entièrement compris dans la fenêtre définie par tes deux points sont sélectionnés ton troisième essai correspond à une capture ; il est normal que tous les objets soient sélectionnés. bon courage
  11. il y a un réacteur sur le changement d'onglet qui est activable essaie ceci ; (vl-load-com) (vlr-miscellaneous-reactor nil (list (cons ':vlr-layoutSwitched 'essai))) (Defun essai (sert-a-rien llayout / ) (alert (car llayout)) ) ensuite tu peux utiliser les outils de gestion des présentations que j'ai déposé ici bon courage
  12. Waouh ! moi je n'aime pas çà les droits ne concernent pas que le nom du produit mais en général également les concepts donc les sources Si une société a les droits légaux sur des sources, l'utilisation et la modification de ces sources même dans un cadre communautaire ne me parait pas très orthodoxe/légale. Chad, avec tout le respect que je lui porte n'a pas été très rigoureux dans cette affaire....
  13. C'est effectivement GRREAD qu'il te faut employer éventuellement associée à une boucle while (while (setq x (grread t)) (print (cadr x)) ) mais attention, tu perds alors les notions d'accrochage aux objets ou alors il te faut gérer toi même ceux ci..... pas simple bon courage
  14. pour les JPG, tu choisis comme traceur "PublishToWebJPG.pc3" pour les WMF, le plus simple c'est la touche qui comlle ton écran sans le presse papier; après tu en fais ce que tu veux
  15. pourquoi Ex ObjectDCL, il me semble que sur le site de DuctiSoft, on parle bien d'ObjectDCL et non pas d'OpenDCL
×
×
  • 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é