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. Beau boulot ! :) Ce ne serait pas plus facile avec Inventor ? Sur un fichier de ce type dans AutoCAD, les contraintes d'assemblage ça doit manquer quand même... :exclam:
  2. bryce

    Pente le long d\'un axe

    Bonjour, Si tu pouvais poster un fichier en exemple, ça aiderait je pense... Parce que pour le moment ton problème reste assez abstrait (pour moi en tout cas). ;)
  3. Bonsoir, Tes explications sont assez claires, mais un fichier aiderait pour chercher et éventuellement trouver la cause. ;)
  4. Bonsoir, La boîte de dialogue n'apparaît pas, mais encore ? Y a-t-il un message dans la ligne de commande ? AutoCAD se fige ? FILEDIA concerne les boîtes de dialogue pour la gestion des fichiers seulement, il n'y a pas de variable à ma connaissance qui influe sur la boîte de dialogue des échelles.
  5. Bonsoir, Autre possibilité : un bloc dynamique à insérer dans le dessin et à aligner sur la pente à mesurer (penser à régénérer pour mettre à jour la valeur) : http://file.ahst.fr/get.php?id=4d66d59c0607d
  6. bryce

    Insertion Inventor 2011

    Bonsoir, Le centre de contenu (bibliothèque de pièces standard) n'est accessible que depuis un ensemble (fichier IAM). Tu peux donc faire un nouvel ensemble, y placer ton boîtier, puis insérer des vis. ;)
  7. J'ai une solution pour exécuter des actions sur plusieurs présentations à l'aide de macros (donc ça fonctionne aussi sur LT). MAIS ça ne fonctionne que si les présentations sont numérotées de façon continue (pas de trous dans la numérotation), ET qu'il n'y a pas d'espaces dans leurs noms. Donc si tu as la possibilité de renommer tes présentations par exemple en P1 P2 P3, ou P-1 P-2 P-3, P_1 P_2 P_3, ou simplement 1 2 3, tu pourras utiliser les macros ci-dessous (telles que, elles sont écrites pour des noms en P1 P2 P3...). Pour renommer les présentations facilement, il y a TabSort . 1) Pour copier des objets sur plusieurs (ou toutes les) présentations, il y a les 2 macros suivantes : ^C^C$m=$(if,$(=,2,$(getvar,pickadd)),pickadd;1;)_select;\_copybase;0,0;p;;modemacro;Entrez le numéro de la présentation sur laquelle s'arrêter;useri2;\modemacro;.;$m=$(if,$(=,2,$(getvar,pickadd)),pickadd;2,\) *^C^Cuseri1;$m=$(+,1,$(substr,$(getvar,ctab),2,$(strlen,$(-,$(getvar,ctab),1))));ctab;P"$m=$(getvar,useri1)";_pspace;_pasteclip;0,0"$m=$(if,$(=,$(getvar,useri1),$(getvar,useri2)),;\)" Mode d'emploi : Se mettre sur la présentation sur laquelle on veut débuter l'opération (par ex. P1, mais ça peut être une autre), utiliser la 1ère macro pour sélectionner les objets à copier : - sélectionner les objets, valider - la macro demande une valeur pour USERI2, entrer le numéro de l'onglet sur lequel doit s'arrêter la copie (par ex. 53) et valider Lancer ensuite la 2e macro, les objets sélectionnés seront copiés au même endroit sur toutes les présentations de P1 à P53. :) 2) Pour activer/désactiver/verrouiller/déverrouiller toutes les fenêtres sur plusieurs (ou toutes les) présentations, il y a les macros suivantes : Pour choisir la présentation sur laquelle s'arrêter : ^C^Cmodemacro;Entrez le numéro de la présentation sur laquelle s'arrêter;useri2;\modemacro;.; Pour activer les fenêtres : *^C^C_mview;_on;_all;;useri1;$m=$(substr,$(getvar,ctab),2,$(strlen,$(-,$(getvar,ctab),1)));"$m=$(if,$(=,$(getvar,useri1),$(getvar,useri2)),\,ctab;P$m=$(+,1,$(getvar,useri1)))" Pour désactiver les fenêtres : *^C^C_mview;_off;_all;;useri1;$m=$(substr,$(getvar,ctab),2,$(strlen,$(-,$(getvar,ctab),1)));"$m=$(if,$(=,$(getvar,useri1),$(getvar,useri2)),\,ctab;P$m=$(+,1,$(getvar,useri1)))" Pour verrouiller les fenêtres : *^C^C_mview;_l;_on;_all;;useri1;$m=$(substr,$(getvar,ctab),2,$(strlen,$(-,$(getvar,ctab),1)));"$m=$(if,$(=,$(getvar,useri1),$(getvar,useri2)),\,ctab;P$m=$(+,1,$(getvar,useri1)))" Pour déverrouiller les fenêtres : *^C^C_mview;_l;_off;_all;;useri1;$m=$(substr,$(getvar,ctab),2,$(strlen,$(-,$(getvar,ctab),1)));"$m=$(if,$(=,$(getvar,useri1),$(getvar,useri2)),\,ctab;P$m=$(+,1,$(getvar,useri1)))" Mode d'emploi : Se mettre sur la présentation sur laquelle on veut débuter l'opération (par ex. P1, mais ça peut être une autre). Lancer la 1ère macro. La macro demande une valeur pour USERI2, entrer le numéro de l'onglet sur lequel l'opération devra s'arrêter(par ex. 53) et valider. Cette opération n'a pas besoin d'être répétée par la suite, tant que l'on veut s'arrêter sur le même onglet. Lancer ensuite une des 4 macros suivantes pour activer/désactiver/verrouiller/déverrouiller toutes les fenêtres sur toutes les présentations de P1 à P53. :) Le fichier xtp pour la palette d'outils : http://file.ahst.fr/get.php?id=4d66b4c0c6c22 [Edité le 24/2/2011 par bryce]
  8. Bonjour, J'ai réussi à faire fonctionner vltest.lsp sur ZwCAD. Depuis le début je pensais que le problème venait de la sélection créée par vla-get-activeselectionset, qui n'était pas libérée (les jeux de sélection se cumulaient). J'avais essayé de libérer la sélection avec vlax-release-object, mais ça ne changeait rien. Mais [/b]quand on utilise vla-clear sur la sélection[/b], tout rentre dans l'ordre ! :) (defun c:test (/ obj acdoc val rectangle vlrectangle vpt1 vpt2 pt1 pt2 blocks vlblocks block val ) (vl-load-com) (setq obj (vlax-get-acad-object)) (setq acdoc (vla-get-ActiveDocument obj)) (initget 1) (setq val (getstring "\nInput value: ")) (while (not (and (setq rectangle (car (entsel "\nSelect rectangle: "))) (eq "LWPOLYLINE" (cdr (assoc 0 (entget rectangle)))) ) ) (princ"\nNot a rectangle !") ) (setq vlrectangle (vlax-ename->vla-object rectangle)) (vla-getboundingbox vlrectangle 'vpt1 'vpt2) (setq pt1 (gc:VariantToLispData vpt1)) (setq pt2 (gc:VariantToLispData vpt2)) (vla-zoomwindow obj vpt1 vpt2) (setq blocks (ssget "_W" pt1 pt2 '( (0 . "INSERT") )) ) (setq vlblocks (vla-get-activeselectionset acdoc)) (vlax-for block vlblocks (PutAttValue block "TEST" val) ) [surligneur](vla-clear vlblocks)[/surligneur] (vla-zoomprevious obj) (vla-regen acdoc acActiveViewport) (princ) ) (defun PutAttValue ( object tag val ) (mapcar (function (lambda ( attrib ) (and (eq tag (vla-get-TagString attrib)) (vla-put-TextString attrib val) ) ) ) (gc:VariantToLispData (vlax-invoke-method object 'GetAttributes)) ) val ) ;; gc:VariantToLispData ;; Convertit un variant ou un safearray en donnée LISP ;; ;; Argument : var variant ou safearray (defun gc:VariantToLispData (var) (cond ((= (type var) 'variant) (gc:VariantToLispData (vlax-variant-value var))) ((= (type var) 'safearray) (mapcar 'gc:VariantToLispData (vlax-safearray->list var)) ) (T var) ) ) (princ "\nCommand is TEST.\nInput a value and select a rectangle.\nThen repeat the command, input a different value, and select the other rectangle.") (princ) Par contre je suis de nouveau tombé sur un comportement bizarre : si j'utilise vla-delete sur le jeu de sélection au lieu de vla-clear, ça provoque une erreur... Pourtant en faisant un vlax-dump-object sur le jeu de sélection, la méthode delete est censée être supportée. :casstet:
  9. bryce

    cartouche en xref

    Oui lili, si les plans correspondent à des présentations dans un seul et même fichier. Mais dans ce cas, je ne pense pas que phil utiliserait une xref pour le cartouche. Si les plans sont répartis dans plusieurs fichiers, il faut utiliser le gestionnaire de jeux de feuilles pour mettre à jour les champs dans tous les fichiers. ;)
  10. bryce

    cartouche en xref

    Il ne peut pas y avoir d'attributs dans une xref... ;) Tu peux insérer ton cartouche en xref dans lequel tu mets des textes normaux pour tout ce qui est commun à tous les plans, et dans chaque plan tu insères par-dessus un bloc avec des attributs pour tout ce qui est propre au plan. Une autre possibilité serait d'utiliser comme cartouche un bloc avec attributs contenant des champs, de créer un jeu de feuilles avec tous tes plans, et d'utiliser le gestionnaire de jeux de feuilles.
  11. Et comme elle est redéfinie à chaque nouvelle exécution de lambda, il n'y aucun problème de "téléscopage"... Merci :)
  12. bryce

    insertion paysage

    Si c'est possible, plutôt que de me les envoyer par courriel tu peux les mettre en ligne pour que d'autres puissent aussi t'aider... http://dl.free.fr ou http://file.ahst.fr/
  13. Ça fonctionne, merci pour la démonstration ! :P J'ai une question sur cette partie : (mapcar '(lambda(e) (vlax-for e (vla-item blocks e) (and (= "AcDbHatch" (vla-get-ObjectName e)) (= "SOLID" (vla-get-PatternName e)) (vla-delete e) ) ) ) listBlocs ) et en particulier sur (vlax-for e (vla-item blocks e) Y a-t-il une raison pour utiliser la même variable e pour 2 choses différentes ? J'aurais eu tendance à utiliser 2 variables différentes : (vlax-for ent (vla-item blocks e) J'ai un peu de mal à comprendre pourquoi ta méthode fonctionne...
  14. bryce

    cartouche en xref

    Bonjour, Quand tu insères un fichier (ici cartouche.dwg) en xref ou bloc, par défaut c'est le point 0,0 du SCG du fichier qui sert de point de base (si la commande BASE n'a pas été utilisée pour le redéfinir). Si tu ouvres le fichier de ton cartouche, tu verras que le système de coordonnées courant n'est pas le SCG. Reviens dans le SCG, et tu verras que le point 0,0 du SCG est assez loin du dessin du cartouche. Sélectionne tout et utilise la commande déplacer pour repositionner le point qui t'intéresse aux coordonnées 0,0. ;) [Edité le 24/2/2011 par bryce]
  15. Bonjour, Un correctif non, mais la version 2012 oui... :P Sinon, je n'ai pas bien compris ton souci... Quand j'affecte une couleur/texture dans l'environnement de modélisation, elle est conservée dans Studio. Tu pourrais faire des captures pour clarifier ?
  16. bryce

    annotativite

    Bonjour, Ça n'est pas tout à fait ça. Quand on déplace un objet annotatif avec les grips, il ne se déplace que pour l'échelle active. Si tu as plusieurs présentations à la même échelle, l'objet va bouger dans toutes ces présentations, mais pas dans celles qui sont à une autre échelle. Pour ton problème de lisibilité, normalement il suffit d'affecter la bonne échelle à l'objet, mais je ne comprends pas trop ton problème. Si tu peux, essaie d'envoyer un fichier en exemple.
  17. Re, Je crois que tu ne peux pas transformer un jeu de sélection ssget avec (vlax-ename->vla-object), il faut passer par (vla-get-activeselectionset). Ensuite tu ne peux pas parcourir les entités de la référence de bloc, il faut accéder à la définition du bloc. (defun c:dsh (/ AcDoc listBlocs vlalistbloc blocks) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) listBlocs (ssget (list (cons 0 "INSERT"))) vlalistbloc (vla-get-activeselectionset AcDoc) ) (setq blocks (vla-get-blocks AcDoc)) (vla-StartUndoMark AcDoc) (vlax-for b vlalistbloc (vlax-for e (vla-item blocks (vla-get-effectivename b)) (if (and (= "AcDbHatch" (vla-get-ObjectName e)) (= "SOLID" (vla-get-PatternName e)) ) (vla-delete e) ) ) ) (vla-EndUndoMark AcDoc) (vla-regen AcDoc acActiveViewport) (princ) ) Comme ça ça fonctionne, mais il n'y a aucune gestion d'erreurs ou vérifications des doublons (plusieurs occurrences du même bloc sélectionnées =le bloc sera traité plusieurs fois inutilement). Edit: corrigé la 2e phrase. [Edité le 24/2/2011 par bryce]
  18. Bonjour, Quand tu parles de solides, s'agit-il de hachures avec le motif SOLID, ou bien des objets créés avec la commande _SOLID ? Est-ce que tu veux supprimer toutes les hachures, quel que soit leur motif ?
  19. Bonjour, ;) Mais même en utilisant ce lisp, il faut quand même mettre VISRETAIN à 1 pour que les nouvelles couleurs soient conservées après fermeture du fichier.
  20. Oups désolé, à force de tester et commenter/décommenter des lignes, j'avais effectivement oubié de remplacer une variable zwobj qui traînait encore... J'ai réuploadé les fichiers : http://file.ahst.fr/get.php?id=4d657ed84dfad (gile), le bug que tu as rencontré avec (vlax-safearray->list vpt1) et (vlax-safearray->list var) n'existe plus dans la 2011. lili2006, oui test.lsp fonctionne très bien dans AutoCAD et ZwCAD (une fois mon oubli réparé). C'est vltest.lsp qui fait des trucs bizarres sur ZwCAD 2011 (sans aucune erreur, je soupçonne un bug avec vla-get-activeselectionset), alors qu'il fonctionne très bien sur AutoCAD.
  21. Bonjour, Ça tombe bien, je crois que j'ai trouvé un bug... :P Dans l'archive ci-dessous, il y a 2 fichiers lsp et un dwg de test. Le but est de lancer la commande TEST, d'entrer une valeur quelconque, de sélectionner un des rectangles, pour renseigner les attributs des blocs situés dans le rectangle. Puis recommencer pour le rectangle d'à côté avec une valeur différente. Le fichier test.lsp fonctionne dans AutoCAD et ZWCAD. Le fichier vltest.lsp doit faire la même chose que test.lsp, mais en utilisant des fonctions Visual Lisp au lieu de fonctions AutoLisp. Il fonctionne parfaitement dans AutoCAD, mais bugge dans ZWCAD (ça fonctionne à la première utilisation, mais ensuite il change systématiquement les attributs de tous les blocs, au lieu de changer uniquement ceux dans le rectangle sélectionné). http://file.ahst.fr/get.php?id=4d657ed84dfad [Edité le 23/2/2011 par bryce]
  22. Ici on est dans le forum AutoCAD 2008, il y a un forum Inventor sur CADxp : http://www.cadxp.com/forumXForum-32.htm ;) Si j'ai bien compris ta question, le plus simple serait que tu fasses tes modifs de styles dans ton fichier gabarit (standard.idw), pour ne pas avoir à les refaire à chaque mise en plan.
  23. bryce

    Partager les PARAMETRES (Fx)

    La question portait sur la possibilité de partager des paramètres entre un assemblage et les pièces qu'il contient. Je ne vois toujours pas le rapport... ;)
  24. bryce

    insertion paysage

    Qu'est-ce qui ne marche pas exactement ? Si tu peux, envoie un fichier en exemple.
  25. Dans l'éditeur de styles, tu peux choisir pour chaque calque l'épaisseur du trait. Il faut changer l'épaisseur du calque "Ligne de coupe (ISO)". Mais tu aurais dû poser cette nouvelle question dans le bon forum. ;)
×
×
  • 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é