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. Patrick_35

    Enregistreur d'action

    Ben non. Pour éviter le message, j'ai ajouté un control des erreurs (defun c:efo(/ doc) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for lay (vla-get-layouts doc) (vl-catch-all-apply 'vla-delete (list lay)) ) (vla-endundomark doc) (princ) ) Ps : J'avais testé le code en EP et et n'ai pas eu ce message d'erreur. @+
  2. Patrick_35

    Enregistreur d'action

    Salut Comme tu utilises JAV, un lisp pour effacer toutes les présentations (defun c:efo(/ doc) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for lay (vla-get-layouts doc) (vla-delete lay) ) (vla-endundomark doc) (princ) ) Ps : Dans jav, tu as une option qui permet de lancer d'autres applications comme le lisp ci-dessus. Cela veut aussi dire que tu peux y inclure tes macros traduites sous forme de lisp Par exemple : Mettre les unités de dessin en mètres (peu importe l'échelle générale) >> résolu, ^C^C-units;2; puis ^C^Cinsunits;6; (setvar "lunits" 2) (setvar "insunits" 6) Pps : Pour tes images, regarde la commande -image @+
  3. Patrick_35

    Enregistreur d'action

    Salut Pour automatiser mes tâches, je fais mes propres lisps et je n'ai personnellement (c'est peut-être un tort) jamais utilisé cet outil. L'avantage du lisp est que l'on peut envisager toutes les solutions possibles et réagir en conséquence, ce qui n'est pas le cas de l'enregistreur d'actions. On a beau essayer de standardiser les dessins, il y aura toujours un cas qui ne rentre pas dans les cases. @+
  4. Salut Lecrabe 1) Oui, c'est la dernière version. 2) Je n'avais jamais pensé à cette possibilité et oui, c'est normal que tu ne puisses pas faire un copier/coller. Tu peux néanmoins charger le lisp et faire -jav pour éviter les boites de dialogues (les options de jav sont conservées). 3) Ben, ce n'est pas du tout prévu pour cela. Néanmoins, tu peux lancer jav normalement et ensuite faire undo pour revenir à l'état précédent. 4) De rien pour le partage. En général, c'est des outils qui me sont utiles (sauf quand il y a des techniques à rechercher et pour un intérêt purement intellectuel ou que ça peut dépanner et que cela ne me prends pas plus de 5 mn). Après une période d'utilisation et de tests, si ça peut profiter à d'autres, je partage. @+
  5. Salut Le fichier après un petit coup de jav @+
  6. Patrick_35

    lancement autoCAD

    Et les switchs ? Voir aussi avec si ça ne vient pas du FAI ? @+
  7. Patrick_35

    lancement autoCAD

    Salut C'est ton réseau passif qui doit être ancien (les câbles qui partent de la baie info vers les prises RJ45). L'idéal seait de refaire un nouveau câblage ou encore d'installer des antennes wifi pour un moindre cout. Pour info, on est actuellement en catégorie 7 @+
  8. Cela permet de corriger d'éventuels erreurs dans le dessin et ainsi corriger ton problème. Je viens déjà d'en touver une :D http://www.deguisement-magic.com/media/catalog/product/cache/2/image/9df78eab33525d08d6e5fb8d27136e95/c/h/chapeau-humoristique-crabe-rigolo-60223.jpg @+
  9. Alors je pense qu'un _audit ne serait pas surperflu @+
  10. Salut Gestionnaire de mise en page --> Choix de la présentation --> Modifier --> Décocher Afficher les stytles de tracé Ou avec ce lisp qui fait la même chose @+ Ast.lsp
  11. Patrick_35

    Calque "0"

    Bonjour Un petit lisp sur la base d'un réacteur qui déplace les objets du calque 0 ves le calque "Calque_0" Le réacteur (defun patrick:sauvegarde(rea data / cal doc sel) (and (ssget "x" (list (cons 8 "0") (cons 67 0))) (progn (alert (strcat "Déplacement des objets du calque 0\nVers le calque \"" (setq cal (vlr-data rea)) "\"")) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (or (tblsearch "layer" cal) (vla-add (vla-get-layers doc) cal) ) (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (vl-catch-all-apply 'vla-put-layer (list ent cal)) ) (vla-delete sel) ) ) ) Pour lancer le réacteur (setq reacteur_sauve (vlr-dwg-reactor "Calque_0" (list (cons :vlr-beginsave (function patrick:sauvegarde))))) Pour effacer le réacteur (vlr-remove reacteur_sauve) @+
  12. Salut Et toi qui te dis une buse en lisp ;) Tu me semble "prêt" :D @+
  13. Salut Et avec la variable TASKBAR ? @+
  14. Salut Le lisp modifié @+
  15. Ah oui, c'est des attributs sur des blocs dynamiques. Le lisp ne fonctionne pas sur ce type de bloc actuellement Je regarde ça dès que j'ai un moment. @+
  16. Salut Tu as juste un T de trop ;) Voir même la valeur des attributs. Pour y remedier, tu as SYN @+
  17. Patrick_35

    Sélection

    Salut (setq js (ssget "x" (list (cons 0 "*TEXT") (cons 1 "S:*")))) @+
  18. Salut Tu as aussi READ Son avantage est qu'il fonctionne aussi bien sur des entiers que des réels (type (read "1.23")) (type (read "123")) @+
  19. Salut (defun c:ang0(/ nombl blo doc nom sel) (defun nombl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (setq blo (entsel)) (setq nom (nombl (vlax-ename->vla-object (car blo)))) (ssget "x" (list (cons 0 "insert") (cons 66 1) (cons 2 (strcat "`**," nom)))) (progn (vlax-for blo (setq sel (vla-get-activeselectionset doc)) (and (eq (nombl blo) nom) (mapcar '(lambda(x)(vla-put-rotation x 0)) (vlax-invoke blo 'getattributes)) ) ) (vla-delete sel) ) ) (vla-endundomark doc) (princ) ) @+
  20. Patrick_35

    Bloc dynamique

    Salut Tu peux modifier le bloc de base et ensuite, clic droit sur le bloc dynamique -> reinitialiser le bloc et cela autant de fois que nécessaire. Si cette solution te conviens, et éviter n clics droit pour traiter tous les blocs dans le dessin avec le lisp de lee-mac Tu remplaces (defun LM:AddObjectstoBlock ( doc block ss / lst mat ) (setq lst (LM:ss->vla ss) mat (LM:Ref->Def block) mat (vlax-tmatrix (append (mapcar 'append (car mat) (mapcar 'list (cadr mat))) '((0. 0. 0. 1.)))) ) (foreach obj lst (vla-transformby obj mat)) (vla-CopyObjects doc (LM:SafearrayVariant vlax-vbobject lst) (vla-item (vla-get-Blocks doc) (cdr (assoc 2 (entget block)))) ) (foreach obj lst (vla-delete obj)) (vla-regen doc acAllViewports) ) par (defun LM:AddObjectstoBlock ( doc block ss / ele lst mat sel nom nombl) (defun nombl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (setq lst (LM:ss->vla ss) mat (LM:Ref->Def block) mat (vlax-tmatrix (append (mapcar 'append (car mat) (mapcar 'list (cadr mat))) '((0. 0. 0. 1.)))) ) (foreach obj lst (vla-transformby obj mat)) (vla-CopyObjects doc (LM:SafearrayVariant vlax-vbobject lst) (vla-item (vla-get-Blocks doc) (setq nom (nombl (vlax-ename->vla-object block)))) ) (and (ssget "x" (list (cons 0 "insert"))) (progn (vlax-for ele (setq sel (vla-get-activeselectionset doc)) (and (eq (nombl ele) nom) (vla-resetblock ele) ) ) (vla-delete sel) ) ) (foreach obj lst (vla-delete obj)) (vla-regen doc acAllViewports) ) @+
  21. Salut Tu n'es pas obligé d'utiliser ObjectDbx. Tu peux aussi travailler de cette manière. C'est plus long et moins propre, mais cela fonctionne avec les dxf et évite les conversions. (setq doc (vla-open (vla-get-documents (vlax-get-acad-object)) "Mon_fichier.dxf")) @+
  22. Salut 1) Un fichier dxf est un fichier texte. Donc il faut le traiter en tant que tel et se lancer à fond dans les codes dxf 2) Tu n'as pas besoin d'une doc spécifique ObjectDbx car on utilise (à peu de chose près) les mêmes méthodes, les mêmes objets que IAcadApplication La différence se fait surtout sur la sélection des objets (possible uniquement sur le dessin courant) 3) Je ne pense pas que la pérennité d'objectdbx soit remise en cause, mais je ne suis pas dans le secret des dieux. @+
  23. Salut Merci pour le partage. Si on pouvait voir le code pour éventuellement le traduire en lisp. @+
  24. Salut Tu as bien fait un regen après l'utilisation du lisp comme indiqué à la fin du message #4 ? @+
  25. Si, ca fonctionne car j'ai testé sur un dessin en xref contenant des attributs et ils sont bien invisible. Par contre, si on sauvegarde et qu'on réouvre le dessin, ils redeviennent visible. Il est possible de faire quelque chose de plus poussé pour conserver dans le dessin ce qui a été rendu invisible dans les xrefs, mais en rentre dans une appli beaucoup plus complexe que mes 3 lignes. Oui, c'est faisable comme (defun c:gat(/ doc ent ele) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (setq ent (entsel)) (and (setq ent (vlax-ename->vla-object (car ent))) (eq (vla-get-objectname ent) "AcDbBlockReference") (vlax-property-available-p ent 'path) (progn (vlax-for ele (vla-item (vla-get-blocks doc) (vla-get-name ent)) (and (eq (vla-get-objectname ele) "AcDbBlockReference") (eq (vla-get-hasattributes ele) :vlax-true) (mapcar '(lambda(x) (vla-put-visible x :vlax-false)) (vlax-invoke ele 'getattributes)) ) ) (vla-regen doc acallviewports) ) ) ) (vla-endundomark doc) (princ) ) @+
×
×
  • 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é