Aller au contenu

bryce

Membres
  • Compteur de contenus

    2 160
  • Inscription

  • Dernière visite

  • Jours gagnés

    16

Tout ce qui a été posté par bryce

  1. bryce

    impart circulaire

    Créer un bouton, ça n'a rien de compliqué. ;)
  2. bryce

    Fichier à récupérer

    Tu pourrais procéder en 2 fois : - dans un premier temps lancer un script "normal" (fichier .scr) sur tous tes fichiers pour les récupérer et les enregistrer. Ils ne devraient plus poser de problème à l'ouverture par la suite. - utiliser ensuite ton soft pour faire tes autres traitements.
  3. A priori la macro suivante fait ce que tu veux : ^C^Cuseri1;$M=$(+,$(getvar,useri1),1);-calque;e;"$M=$(getvar,useri1)";;_-layout;n;Folio_"$M=$(getvar,useri1)";attreq;0;-inserer;BLOCFOLIO;\;;;attreq;1;_-layout;e;Folio_"$M=$(getvar,useri1)";ef;tout;;fmult;;_mspace;zoom;o;d;;fmult;v;ac;d;;_pspace;tilemode;1 Par contre pas de copier/coller ! Il faut créer un bouton personnalisé avec cette macro, mettre ce bouton dans une barre d'outils (ou une palette d'outils ou le Ruban), et obligatoirement utiliser ce bouton pour ajouter un folio. Voici ce que fait la macro, par exemple lors de la 1ère utilisation (useri1=0 au départ): - ajoute 1 à useri1 (0+1 -> 1) - crée un calque dont le nom correspond à la nouvelle valeur de useri1 (par ex. 1) - crée une présentation appelée Folio_1 - insère le bloc appelé BLOCFOLIO sans demander de renseigner les attributs - passe dans l'onglet Folio_1 - efface tous les objets existants - crée une fenêtre correspondant à la zone de tracé - active cette fenêtre (passe en espace Objet) - fait un zoom sur le dernier objet créé (le bloc inséré précédemment) - verrouille la fenêtre - repasse en espace Papier - retourne dans l'onglet Objet. Il faudra peut-être adapter la macro sur certains points, par exemple pour insérer une présentation depuis un gabarit plutôt que d'en créer une vierge.
  4. bryce

    Fichier à récupérer

    Ce n'est pas un problème, ça ralentira juste un peu le traitement. Ça n'existe pas à ma connaissance.
  5. bryce

    Fichier à récupérer

    Bonjour, Tu peux peut-être utiliser systématiquement la commande _RECOVER au lieu de _OPEN dans ton script ?
  6. bryce

    PROBLEME DE SELECTION

    Bonjour, Il faut remettre la variable PICKADD à 1 (ou bien dans les Options, dans l'onglet Sélection, décocher la case "Utiliser la touche MAJ pour ajouter à la sélection"). ;)
  7. Bonjour, Peut-être que ce sujet suffira à t'aider : http://www.cadxp.com/sujetXForum-30316.htm
  8. Bonjour, Tu peux sans doute t'en tirer avec la commande "Sélection rapide". Sinon voici un lisp que j'ai trouvé sur le net : ;| Select Similar (based on a command found in a few versions of AutoCAD-based products) written by Adam Wuellner all rights released Edited by Marc Scherer for www.cad.de Changes: The selsim command now identifies the "Simliar" Objects not only by the Entity-Type and Layername. The Identification is based on the resulting entget-list from the Sub-Function "FILTER-DXFCODES". This Function first removes all DXF-Codes which Datatypes are not String or Real (f.e. Layernames, Textstyles, Hatchnames, Textheights...) Then it removes all DXF-Codes that are defined in the second Argument of the member function within. Feel free to change this List for your own purposes. You can find this List if you search this code for the Text: "Here is the List of DXF-Codes that have to be removed" |; (defun C:SELSIM (/ SS1 I ENT FILTER_LIST TYPE-LAYER FILTER SSTEMP) (defun SS:UNION (SS1 SS2 / ENAME SS-SMALLER SS-LARGER C) (cond ((and SS1 SS2) (setq C 0) (if (< (sslength SS1) (sslength SS2)) (setq SS-SMALLER SS1 SS-LARGER SS2 ) (setq SS-LARGER SS1 SS-SMALLER SS2 ) ) (while (< C (sslength SS-SMALLER)) (setq ENAME (ssname SS-SMALLER C) C (1+ C) ) (if (not (ssmemb ENAME SS-LARGER)) (ssadd ENAME SS-LARGER) ) ) SS-LARGER ) (SS1 SS1) (SS2 SS2) (t NIL) ) ) (defun FILTER-DXFCODES (LST-ENTGETDATA /) ;; At first remove all DXF-Codes which Datatypes are not String or Real (if (setq LST-ENTGETDATA (vl-remove-if-not '(lambda (X) (setq OBJTYPE (type (cdr X))) (or (= OBJTYPE 'STR) (= OBJTYPE 'REAL)) ) LST-ENTGETDATA ) ) ;; Then remove all DXF-Code that are defined in the second Argument of ;; the member function. Feel free to change this List for your own purposes. (setq LST-ENTGETDATA (vl-remove-if '(lambda (X) (member (car X) ;; Here is the List of DXF-Codes that have to be removed '(1 3 5 40 41 42 43 44 45 46 49 50 51 52 53 54 100 102 300 410 460 461 462 470 ) ) ) LST-ENTGETDATA ) ) ) LST-ENTGETDATA ) (if (not (setq SS1 (cadr (ssgetfirst)))) (setq SS1 (ssget)) ) (setq I 0 FILTER_LIST '() ) (if SS1 (progn (repeat (sslength SS1) (setq ENT (FILTER-DXFCODES (entget (ssname SS1 I))) I (1+ I) ) (setq TYPE-LAYER ENT) (if (not (member TYPE-LAYER FILTER_LIST)) (setq FILTER_LIST (cons TYPE-LAYER FILTER_LIST)) ) ) (foreach FILTER FILTER_LIST (setq SSTEMP (ssget "X" FILTER)) (setq SS1 (SS:UNION SS1 SSTEMP) SSTEMP NIL ) ) (princ (strcat "\nFilter: " (vl-prin1-to-string FILTER_LIST) ) ) (sssetfirst NIL SS1) (princ (strcat "\n>" (itoa (sslength SS1)) "< similar Objects selected!" ) ) ) (princ "\nNo Filter Objects selected!") ) (princ) ) (princ) La commande à utiliser est SELSIM. On peut choisir dans le code LISP les codes DXF à filtrer. J'ai déjà retiré le code 2 qui correspond au nom, de façon à ce que seuls les blocs du même nom et sur le même calque soient sélectionnés. [Edité le 9/11/2010 par bryce]
  9. bryce

    impart circulaire

    Tu peux faire en sorte que le fichier dvb soit chargé automatiquement : dans la boîte de dialogue Outils > Charger une application... cliquer sur le bouton "Contenu" sous la valise "Au démarrage" et sélectionner le fichier dvb à charger automatiquement. Ensuite pour lancer la macro plus facilement, tu peux te créer un bouton personnalisé avec une macro de ce genre : ^C^C-vbarun;NOMDELAMACRO Pour le message d'erreur de la macro, peut-être que si tu la postes quelqu'un pourra y jeter un oeil. [Edité le 9/11/2010 par bryce]
  10. C'est-à-dire ? tu insères le bloc par exemple sur le calque 36, et tu as un champ dans l'attribut "page courante" pour récupérer le nom du calque sur lequel se trouve le bloc ? En tout cas voici un petit exemple de macro à coller dans un bouton personnalisé : ^C^Cuseri1;$M=$(+,$(getvar,useri1),1);-calque;e;"$M=$(getvar,useri1)";;-presentation;n;"$M=$(getvar,useri1)";-inserer;BLOCFOLIO J'ai utilisé les commandes françaises pour que ce soit plus simple à modifier si besoin. Il faut remplacer BLOCFOLIO par le nom de ton bloc. La variable useri1 stocke le n° du dernier folio créé, elle est à 0 par défaut dans un nouveau dessin. Si jamais quelque chose va de travers et qu'il faut repartir d'un numéro existant, il suffit de taper USERI1 dans la ligne de commande et de lui affecter la valeur voulue avant de lancer la macro. Bien sûr en LISP on pourrait faire quelque chose de plus sophistiqué. [Edité le 9/11/2010 par bryce]
  11. Le bloc doit être inséré sur le nouveau calque créé ? Il doit être inséré dans l'espace objet ? ou dans la nouvelle présentation créée ?
  12. bryce

    impart circulaire

    Bonjour, Tu peux le placer où tu veux, même si c'est peut-être mieux de le placer dans un chemin support d'AutoCAD. Pour le charger : Outils > Macros VBA > Charger projet... et tu indiques l'emplacement du fichier. Pour exécuter une macro : Outils > Macros VBA > Macros... [Edité le 9/11/2010 par bryce]
  13. Oui c'est sûr, le copier/coller il faudra oublier, c'était implicite. :cool:
  14. Pour la 1ère question, il faut intervenir dans la base de registre : HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersionXX\System\Preferences\Display -> mettre Capping Face Options à 0. Pour la 2e question, il faut physiquement couper les pièces ou l'ensemble. Je pense que le plus pratique, s'il n'y a pas d'animation de mouvements entre les pièces, serait de créer une pièce dérivée de l'ensemble, et de la découper pour le rendu. [Edité le 9/11/2010 par bryce]
  15. bryce

    Déplacer les Rubans

    Bonjour, On peut désactiver l'ancrage du Ruban avec un clic droit pour l'afficher sous la forme d'une palette flottante, donc a priori ça ne devrait pas poser de problème pour déplacer cette palette sur un autre écran (je n'ai qu'un écran, je ne peux pas tester).
  16. Bonjour, Ça peut se faire en LISP, ou peut-être même avec une simple macro, mais il faudrait que tu précises un peu : c'est pour un bloc défini ou n'importe lequel, comment doivent être nommés les calques et les présentations créés...
  17. Bonjour, Si l'anglais ne te fait pas peur, il y a ce site que je trouve très bien : http://www.afralisp.net
  18. Pour créer une barre d'outils : - taper la commande CUI - faire clic droit > Nouvelle barre d'outils sur le noeud Barres d'outils. Il faudra ensuite créer des commandes personnalisées (boutons), puis faire glisser ces commandes dans la nouvelle barre d'outils. Pour chacune de ces commandes, il faudra écrire une macro; par exemple pour faire une cote linéaire en style COTE50 : ^C^C_-dimstyle;_r;"COTE50";_dimlinear http://nsa20.casimages.com/img/2010/11/08/101108050334438012.png
  19. Bonjour, Je te suggère de créer une palette d'outils plutôt qu'une barre d'outils. Il suffit de sélectionner dans le dessin une cote qui a le bon style et qui se trouve sur le bon calque, puis de faire glisser cette cote dans la palette d'outils. Les cotes créées avec l'outil obtenu auront automatiquement le bon style et appartiendront au bon calque. Le style et le calque seront même créés s'ils n'existent pas dans un dessin.
  20. Ta question sur les échelles n'était pas claire, c'est peut-être pour ça qu'il n'y a pas eu de réponses... ;) L'échelle d'insertion des blocs n'a rien à voir avec l'échelle de traçage. Si tu as toujours des soucis, tu devrais créer un nouveau sujet, et préciser ta(tes) question(s).
  21. En effet, le glisser-déposer d'une commande fonctionne, cool ! Merci ! :)
  22. Oui, on peut. Exemple : ^C^C_.snapang;\_.userr1;$M=$(getvar,snapang);_.snapang;\_.userr2;"$M=$(getvar,snapang)";_.snapang;\_.userr3;""$M=$(getvar,snapang)""; Pour ce qui est du \, c'est clair que c'est pénible. Par exemple, comme le dit Christian, pas moyen de faire fonctionner cette simple macro : ^C^C-texte;\;;$M=$(getvar,dwgprefix); Par contre dans certains cas on peut utiliser le code %%92, par exemple : ^C^C-texte;\;;oh le joli %%92; [Edité le 4/11/2010 par bryce]
  23. Certes, mais le paramètre utilisateur pourrait être défini par une table de bloc, ou intervenir en tant que valeur dans une expression pour calculer un autre paramètre, etc. Dans le cas précis de la question de Ludwig, je me suis contenté d'y répondre, sans savoir quel est son but final. ;)
  24. Parce que son mur est un mur 2D vu de dessus, donc la hauteur n'est pas représentée graphiquement, et donc pour utiliser un paramètre linéaire il faudrait le créer "dans le vide". Mais les paramètres utilisateurs ont aussi des applications plus intéressantes que ça.
  25. Le paramètre que tu as créé est un [surligneur]paramètre d'action[/surligneur], linéaire en l'occurrence. Ce type de paramètre sert à créer des blocs dynamiques, et sont apparus en même temps qu'eux (dans la 2005 ou 2006 de mémoire). Le premier paramètre que je crée dans la et que je renomme en "longueur" est du même type. Tout de suite après, j'affiche la palette "Paramètres", apparue dans la 2010 avec les fonctions de dessin paramétrique. Cette palette sert à créer et gérer des paramètres utilisateurs, ainsi qu'à gérer les paramètres correspondant aux contraintes dimensionnelles (cotes paramétriques). Dans cette palette, je crée un paramètre utilisateur appelé "reference" auquel je donne une valeur arbitraire. Je crée ensuite deux attributs utilisant des champs comme valeur : - un attribut va afficher la valeur correspondant au paramètre d'action appelé "longueur" - l'autre attribut va afficher la valeur correspondant au paramètre utilisateur appelé "reference". Si tu n'as jamais utilisé les outils de dessin paramétrique de la 2010/2011, c'est normal que tu ne voies pas trop ce que c'est qu'un paramètre utilisateur; il faudrait commencer par étudier ces outils. ;)
×
×
  • 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é