Aller au contenu

Fundream

Membres
  • Compteur de contenus

    797
  • Inscription

  • Dernière visite

  • Jours gagnés

    5

Tout ce qui a été posté par Fundream

  1. Fundream

    Application.Getopenfilname

    Merci Luna je vais essayer RBloc mais de mon souvenir ça ne fait pas de changements de masse multiples. Sur autocad 2020 j'arrive à redéfinir les blocs mais va savoir pourquoi, à l'enregistrement ça perd les materiaux...
  2. Fundream

    Application.Getopenfilname

    Bonjour @didier Si je ne purge pas, l'insertion utilise les blocs déjà présent dans le fichier, ils ne se redéfinissent donc pas. En plus l'idée c'est de redéfinir les blocs en place, exactement au même endroit que les originaux, les plans étant déjà établis mais avec des bloc non à jour.
  3. Fundream

    Application.Getopenfilname

    Je suis désolé Gile mais cette séquence insère le bloc nommé sans mettre a jour l'ancien. J'ai tenté pas mal de chose mais autocad me dit "définition a double du bloc impossible", donc j'ai tenté de renommer les bloc avant insertion des nouveau mais rien ne se passe et ma liste reste désespérément vide... (defun c:UpdateBlocks (/ source-dwg block-list old-block-name new-block-name) (setq source-dwg (getfiled "Sélectionnez le fichier DWG source" "" "dwg" 8)) (if source-dwg (progn (setq block-list (vl-remove-if '(lambda (x) (= (cdr (assoc 2 x)) "*Model_Space")) (dictsearch (namedobjdict) "ACAD_BLOCK"))) (foreach block block-list (progn (setq old-block-name (cdr (assoc 2 block)) new-block-name (strcat old-block-name "-old")) (command "_.-rename" "_B" old-block-name new-block-name) (command "_.-insert" source-dwg old-block-name "_0,0" "_1" "_1" "_0") ) ) ) ) (princ) )
  4. Bonjour à tous, Je souhaite mettre à jour tous les bloc de mon dessin par les blocs portants le même nom contenus dans un autre fichier dwg. J'ai tenté le LISP sans succès, les blocs s'insèrent sans se redéfinir et j'essai donc le Vba dont je n'ai aucune notion. Pour choisir mon fichier source des bloc je souhaite utiliser Application.getopenfilename ("Fichier DWG (*dwg), *dwg") mais visiblement autocad ne reconnais pas la commande. Si vous avez une solution à m'apporter pour réaliser cette tache, se serait d'une grande aide. Merci
  5. Bon je me suis basé sur un lisp existant et j'ai réussi à sortir ça qui semble fonctionner : (defun c:rotmult () (prompt "Selectionner les objets à tourner") (setq ss (ssget)) (if (not ss) (setq ss (ssx))) (setq num (sslength ss)) (setq x 0) (setq axe (getstring nil "Axe de rotation (X/Y/Z): ")) (if ss (if (setq ang (getreal "Angle de rotation: ")) (repeat num (setq ename (ssname ss x)) (setq elist (entget ename)) (command "scu" "ob" ename) (command "3DRotation" ename "" axe "" ang) (setq x (1+ x)) ) ) ) )
  6. Bonjour, J'ai un dessin avec énormément de blocs identiques insérés dans l'espace mais 50% d'entre eux ont été inséré dans un mauvais SCU.J'aimerai pouvoir tourner tout ce beau monde de 90° autour de leur propre axe X (SCU OB) en une seule fois.Un petit lisp existe il ? Merci
  7. Pour moi il faut que tu mette l'image en fond de scene
  8. Bonjour, Je cherche à détecter la présence d'un bloc le long de la ligne formée par deux points de sélection quel que soit le sens de sélection (donc pas forcément pt1 au point d'insertion) Si la détection d'un bloc n'est pas possible, peux-t-on détecter un élément ligne ou polyligne qui est présent dans le bloc entre ses deux points ? L'idée c'est de faire une insertion automatique de bloc en fonction de ce qui est déjà présent. Déroulé de la fonction : On clique sur deux points, ça insère le bloc d'une conduite Ø900 nue Par la suite on veut ajouter de l'isolation sur cette conduite, on re-clique sur les deux points d'extremitée de cette conduite et cela remplace le bloc conduite nue par le bloc conduite isolé Par la suite la fonction finale deviendra : On souhaite enfin ajouter un chemin d’inspection sur certaines conduites isolé uniquement, on clique de nouveau sur le point, cela détecte une conduite isolé ou non, si elle est isolé cela insère un bloc chemin d'inspection pour conduite de 900 par dessus le bloc conduite,si elle n'est pas isolé cela la remplace par une conduite isolé. Des idées ?
  9. Je note, merci pour cette solution.
  10. C'est bon ! Un petit (if (/= (cadr ss3) nil) aura résolu mon problème.
  11. Salut ! Tu as une bonne mémoire ;) J'ai un problème sur le code, suite au filtre des blocs, si il s’avère que le jeu de sélection est vide, cela me redemande de sélectionner alors que je voudrai que cela se termine. Il faut donc que je rajoute un (if (ss /= nil)) mais cela ne fonctionne pas. Quelqu'un a une idée pour vérifier qu'un jeu de sélection est présent ?
  12. Oui oui effectivement, mais je suis surpris que tu t'en souvienne, je ne suis pas très actif sur le forum.
  13. FunDream 3D, d'où tu sors ça ? Pour le premier bout de code je t'enverrai des pistaches ^^ Ce sont des références de pièce, il faut demander au fabricant le pourquoi du comment. Merci en tout cas
  14. Exactement, j'ai modifié le ssatt et compilé les deux, ça donne ça et ca marche à merveille : (defun ssatt (/ att elst ss1 ss2 n ent) (and (setq ss2 (ssadd)) (sssetfirst nil nil) (princ "\nSélectionnez les blocs ou [b]<[/b]Tous>: ") (or (setq ss1 (ssget '((0 . "INSERT") (66 . 1)))) (setq ss1 (ssget "_X" '((0 . "INSERT") (66 . 1)))) ) (if ss1 (repeat (setq n (sslength ss1)) (setq ent (ssname ss1 (setq n (1- n))) att (entnext ent) ) (while (= (cdr (assoc 0 (setq elst (entget att)))) "ATTRIB") (if (and (= (cdr (assoc 2 elst)) "REF") (or (= (cdr (assoc 1 elst)) "kiko") (= (cdr (assoc 1 elst)) "kina") ) ) (ssadd ent ss2) ) (setq att (entnext att)) ) ) ) (sssetfirst nil ss2) ) (princ) ) (defun c:ddc (/ entdata vlaobj vallst ddc ) (ssatt) (mapcar '(lambda (x) (and (= 'ename (type x)) (foreach attobj (safearray-value (variant-value (vla-getattributes (setq vlaobj (vlax-ename->vla-object x))))) (and (= "comddc" (vla-get-tagstring attobj)) (setq vallst (cons (atof (vla-get-textstring attobj)) vallst)))))) (mapcar 'cadr (ssnamex (ssget '((0 . "INSERT") (66 . 1)))))) (setq ddc (+ (apply '+ vallst))) )
  15. Salut, Non le but est de simplifier au maximum donc de ne pas avoir d'extraction de donné et un tableur.Déja comme mon attribut est toujours "comddc", j'ai retiré le la definition de tagname avec getstring par "comddc" directement, ça évite de le saisir. (and (= "comddc" (vla-get-tagstring attobj)) Sortir le résultat dans un "text" insérable dans l'objet serai un gros plus également.
  16. Salut, Cela fonctionne mais j'ai pris l'exemple de 2 références de pièces pour ne pas surcharger la demande et juste m'apporter une base. En réalité ma sélection comporte au moins 45 "REF" différentes et je vais devoir sommer leur "comddc" par groupe. Diviser certain totaux par 2, d'autres totaux par 4 et enfin sommer la totalité des résultats obtenus.Donc la routine de sélection par "REF" et sélection précédente j'ai peur que ce soit un peu fastidieux mais je vais tenter de coder ça. Merci
  17. Merci beaucoup lecrade mais je n'ai pas deux valeurs d'attribut spécifique, le seul attribut que je veux sommer c'est l'attribut "comddc" MAIS je ne veux sommer que ceux qui se trouvent dans les blocs où l'attribut "REF" est "kiko" ou "kina".Dans ma sélection il y a plein d'autres blocs avec l'attribut "comddc" mais comme leur "REF" n'est pas "kiko" ni "kina", je ne souhaite pas les prendre en compte. Comme tu dis c'est un début, j’essaie maintenant de trouver comment filtrer mes blocs.
  18. Fundream

    Adieu Patrick_35

    Toutes mes condoléances à sa famille et ses proches, ses compétences inestimables nous manquerons mais l'homme restera irremplaçable pour son entourage.
  19. Bonjour les Lispeurs ! Je cherche à additionner les valeurs de tous les attributs numériques nommés "comddc" des blocs dont l'attribut "REF" est égal à "kiko" ou "kina" uniquement suite à une selection et à retourner cette valeur sous forme de Textmult. Je suis complètement novice en la matière et cela me dépasse complètement, quelqu'un saurait il m'aider ? Merci beaucoup
  20. Bon ba une réinstallation complète avec un autocad par defaut et cela fonctionne, je vais voir en rajoutant mon CUIX par la suite.
  21. Bonjour à tous, Il est rare que j'ai des problèmes que je n'arrive pas à résoudre mais là je sèche depuis des jours. Sur mon autocad 2017, la commande 3DDELIM dont je me servais énormément sur mon ancien PC ne fonctionne pas sur celui là. Installation neuve, driver vidéo a jour, la commande se lance mais la Fenêtre Ajuster les plans de délimitation ne monte jamais à l'écran alors que la commande est clairement lancée et en attente. Quelqu'un aurait il la solution à ce problème ? Merci beaucoup
  22. Tu parle de la convention Syntec ? C'est la pire qui puisse exister de toute façon... Grille Tarifaire Elle n'a pas été modifiée depuis 2005 effectivement.
  23. C'est même dérisoire...
  24. Je me doute bien mais c'est une perte de temps pour tout le monde. Il m'est déja arrivé d'aller a ce genre d'entretien, et d'en repartir parce que le salaire proposé n'était pas du tout en phase avec mon salaire de l'époque...
  25. Et aucun salaire...ça bosse gratis...
×
×
  • 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é