Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Oui, mais ton lisp active la présentation et fait une sélection, ce qui évite la fenêtre générale que l'on trouve dans le bloc qui compose la présentation. @+
  2. J'ai testé aussi bien avec true que false avant de poster ma réponse et les résultats sont les mêmes sur ma 2014. @+
  3. Salut C'est normal, car comme tu parcoures le bloc composant le layout, le 1er objet est la fenêtre générale de ton EP et il faut l'éviter. Apparemment, on ne peut activer/désactiver une fenêtre que si elle a déjà été générée une première fois. (defun c:VPAllOff(/ lay ent saut) (vl-load-com) (vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) (vla-put-activelayout (vla-get-activedocument (vlax-get-acad-object)) lay) (vlax-for ent (vla-get-block lay) (and saut (eq (vla-get-objectname ent) "AcDbViewport") (vla-put-viewporton ent :vlax-false) ) (setq saut T) ) (setq saut nil) ) (princ) ) @+
  4. Salut Tu fais ctrl+A puis ctrl+1 pour les propriétés. Tu as une liste déroulante dans laquelle tu choisis Textes et/ou Textmult (avec le nombre de textes entre parenthèses). Il ne reste plus qu'à changer la Rotation. @+
  5. Tu regardes ici (vlax-dump-object (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) Un exemple pour ajouter ou pas un répertoire dans les supports (setq Mon_Dossier "c:\\toto\\Mes_lisps" pref (vla-get-files (vla-get-preferences (vlax-get-acad-object))) ) (or (vl-string-search (strcase Mon_Dossier) (strcase (vla-get-supportpath pref))) (vla-put-supportpath pref (strcat Mon_Dossier ";" (vla-get-supportpath pref))) ) @+
  6. Salut Et en faisant _BCLOSE sur la ligne de commande ? @+
  7. Merci Lecrabe, mais c'était dans mon prog d'install des lisps. Un exécutable qui fait tout ce qu'il faut, ajouter le chemin s'il n'existe pas, routines communes, etc... Le truc simple pour un utilisateur lambda. Il faut juste maintenant valider le chemin d'install des lisps une 1er fois. @+
  8. vlax-for permet de parcourir une collection. Donc, si je fais ma boucle sur ma définition de bloc, je vois les éléments qui composent mon bloc Pour voir les objets de mon bloc (vlax-for BLOCCARACTERISTIQUE (vla-item (vla-get-blocks doc) BLOCNAME) (terpri)(princ BLOCCARACTERISTIQUE) ) Pour voir les caractéristique du premier objet de mon bloc (vlax-dump-object (vla-item (vla-item (vla-get-blocks doc) BLOCNAME) 0) T) Ce n'est pas grave, on a tous commencé :P Il faut juste comprendre la logique d'Autocad qui n'est pas toujours évidente. La preuve, je viens de passer sur une version 2014 et on a maintenant un répertoire pour valider les lisps qui nous sont utiles. Pourquoi pas, une sécurité en plus. Je pensais trouver la valeur dans les préferences d'autocad,eh bien non. C'est la variable TRUSTEDPATHS qui gère cela. Va comprendre. :blink: @+
  9. Comme on est dans le vlisp, on y reste ;) --> (vla-item Ma_collection Nom) vla-item reviens à faire un tblsearch en autolisp Ma_Collection = (vla-get-blocks doc), soit la table des blocks Nom = le nom du bloc (vlax-for ele (vla-item (vla-get-blocks doc) (vla-get-name ent)) ... ) ps : dommage de mélanger le vlisp/autolisp car en plus tu convertis des codes dxf en vlisp. Regarde bien le 1er lisp avec activeselectionset pps : tu avais déjà la réponse pour rechercher la couleur d'un calque (collection/table layer/calque en français) @+
  10. Ok, je refais de Cahier Des Charges 1) Créer un jeu de sélection de tous les blocs présent dans le dessin. 2) Parcourir le jeu de sélection 3) Récupérer le nom du calque d'insertion du bloc 4) Récupérer la couleur du calque dans la table des calques 5) Récupérer le bloc dans la table des blocs 6) Parcourir le bloc pour changer la couleur des objets que le compose Tu as tous les éléments pour y parvenir, je te laisse chercher un peu. Cependant, une question est de savoir si tu as des attributs, car dans ce cas, le lisp n'est pas encore fini. ps : le plus simple est de tout définir en ducalque. @+
  11. Salut 1) Créer un jeu de sélection de tous les blocs présent dans le dessin. 2) Parcourir le jeu de sélection 3) Récupérer le nom du calque d'insertion du bloc 4) Récupérer la couleur du calque dans la table des calques 5) Forcer la couleur du bloc (defun c:vannes(/ doc ent sel) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget "x" (list (cons 0 "insert"))) (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (vla-put-color ent (vla-get-color (vla-item (vla-get-layers doc) (vla-get-layer ent)))) ) (vla-delete sel) ) (vla-endundomark doc) (princ) ) @+
  12. Salut Variable ATTECRAN Par la gestion des calques si les blocs ont été bien conçu. @+
  13. Patrick_35

    rtos

    Salut (rtos 1.1 2 2) @+
  14. Ben, j'ai testé cette expression et que nenni, même dans le champ (aussi bien en texte qu'en attribut) $(if,$(<,%<\AcObjProp Object(%<\_ObjId 2093074672>%).Length \f "%lu6">%,50),"Val Inf","Val Sup") Edit : Cela fonctionne comme l'indique Bonus, mais uniquement en texte, pas en attribut. C'est surprenant car quand on édite le résultat, on voit d'écrit la longueur. @+
  15. Salut J'ai déjà essayé plusieurs fois des conditions avec des objets et le résultat dans un attribut en diesel avec les champs, mais ça ne fonctionne que la 1ere fois. Le résultat est écrit directement et fait sauter la formule, ce qui fait que si l'on modifie, et bien plus rien ne se passe. Sinon, il reste les réacteurs. @+
  16. Salut Et bien, c'est du rapide pour les réponses ;) Je donne quand même ma routine pour créer des polylignes, cela peut aider à comprendre. (defun dessine_poly_patrick(pts coul cal esp / lst ent) (setq ent (mapcar '(lambda(x)(cons 10 x)) pts) ent (append (vl-remove nil (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 70 0) (cons 90 (1+ (length pts))) (cons 6 "BYLAYER") (car coul) (if (cadr coul) (cadr coul) ) (if (caddr coul) (caddr coul) ) (if esp (cons 8 cal) (progn (cons 8 "0") (cons 67 1) (cons 410 cal) ) ) ) ) ent ) ) (entmake ent) ) Exemple (setq Ma_Poly (dessine_poly_patrick '((0.0 0.0 0.0) (1.0 1.0 0.0) (5.0 5.0 0.0)) '((62 . 1) nil nil) "Mon_Calque" T)) pts = liste de points --> Exemple '((0.0 0.0 0.0) (1.0 1.0 0.0) (5.0 5.0 0.0)) coul = couleur de la poly --> Exemple '((62 . 1) nil nil) pour la couleur rouge. Les deux nils sont pour les couleurs vraies ou le nom de la couleur (dxf 420/430) cal est pour le nom du calque esp est pour l'espace objet/papier --> valeur différent de nil --> Espace Papier @+
  17. Salut Dans la même veine, pourquoi ne pas se faire tirer le portrait en 3D Et on peut même avoir sa figurine Bientôt, on pourra faire son diorama familial ;) @+
  18. Patrick_35

    Wipeout sur attribut

    Salut Ou encore de les mettre sur un calque que l'on peut geler/inactiver. Ou encore de les définir en tant qu'invisible. @+
  19. Salut Dans le dessin courant, rien de plus simple, mais pour les autres dessins que l'on ouvre avec ObjectDbx (si j'ai bien compris la question), le problème est la synchro. @+
  20. Patrick_35

    Carnet rose

    Salut A t'entendre, c'est un bébé comme tout le monde souhaite en avoir un. Tu es sur que ce n'est pas une poupée ;) Trêve de plaisanterie, toutes mes félicitations pour le papa et la maman. Un bébé Petit ange venu des cieux Des étoiles plein les yeux @+
  21. Salut Avec la variable TASKBAR @+
  22. Salut Regarde ce sujet @+
  23. Patrick_35

    Autocad qui Freeze

    Je pense avoir compris. Si autocad affiche un message durant le déroulement du lisp, ma fenêtre de message passe en "arrière-plan" tout en étant affiché en 1er et du coup on ne voit plus les messages. Pour simuler, il suffit de cliquer sur la ligne de commande durant le déroulement du lisp pour voir @+
  24. Patrick_35

    Autocad qui Freeze

    Salut Oui, c'est bien la v3.34. Avant, sur ma 2009, tout fonctionnait correctement. Je viens de tester sur plusieurs dessins. Parfois c'est ok, d'autres pas :o @+
  25. Patrick_35

    Autocad qui Freeze

    J'ai l'impression qu'il fonctionne bien et je pense que le problème doit aussi se poser pour d'autres lisps qui ont prit la peine d'afficher quelque chose quand on à un traitement assez long et pour montrer que totocad n'a pas planté. Mais cela devient ch..nt à la fin. Surtout si tu as un message d'erreur. Impossible de savoir quand ça se produit. @+
×
×
  • 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é