Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. Bred

    variable dans entité

    ben merci... c'est ça... je veux bien faire un jeu de selection avec tous les objets appartenent à un seul calque, donc tu à répondu à ma question... donc : (setq var1 "Mon_Calque") (setq sel (ssget "_X" (list (cons 8 var1)))) merci encore
  2. Bonjours, je cherche desespérement à trouvé la bonne méthode (le bon format) pour insérer une variable dans une entité. Pour faire : Exemple (faux) : (setq calque "xxx") (setq sel (ssget "_X" '((8 . calque)))) j'ai asayé avec des strcat, des cons, .... je n'arrive pas à trouvé le bon truc (en fait je but sur . (le point)) merci d'avance
  3. Bred

    vla-InsertBlock

    Merci (gile) de tes remarques. En fait j'affecte 180 ° à Rot, mais c'est justement pour me servir de "InsBlocdec_calqueTempo " dans d'autre lisp ou la valeur de Rot doit être différente (je ne l'ai pas signalé mais (defun c: MONLISP n'est qu"un lisp "test" permettant de faire fonctionne ma routine "InsBlocdec_calqueTempo "...) comme ça je peux rentrer la roration que je désire, et en degré afin de ne pas me poser de question dans l'écriture d'autre lisp ... De même que pour la variable de "mon bloc", je le fais car dans un lisp j'aime bien écrire en début tout les chemins des blocs et des fichiers que j'utilise, et de les rentrer dans des variables afin de pouvoir les regrouper tous au même endroit, et si il y à une modif, c'est + facilement retrouvable... merci encore en tout cas...
  4. Bred

    vla-InsertBlock

    Enfin !!! je suis arrivé à ce que je voulais.... ;) Je met ma routine ci dessous. merci à tous ce qui m'ont aidé.... au prochain problème !!! :P Donc le lisp ci-dessous permet d'inserer un bloc... c'est compliqué, mais c'est une réponse au problème de gestion des blocs lorsqu'il sont inserer automatiquement dans une parti non affiché à l'écran, et qui provoque une erreur... (la mise sur "calqueTempo" permet de pouvoir tout récuperer avec un (setq sel (ssget "_X" '((8 . "calque_Tempo")))) (defun c: MONLISP () (setq pt (getpoint "\n Point d'insertion :") chem "MonBloc" Rot 180) (InsBlocdec_calqueTempo (trans pt 1 0) eb Rot) ) ;;;;;;;;; Insert bloc rotation (Rot) degré + DECOMPOSER + mise sur calqueTempo ;;;;;;;;;;;;;;;;;;;;;; (defun InsBlocdec_calqueTempo (pt chem Rot / a b) (setq a (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point pt) chem 1 1 1 (angle '(0 0 0) (trans (getvar "UCSXDIR") 0 (trans '(0 0 1) 1 0 T))))) (foreach b (vlax-safearray->list(vlax-variant-value (vla-explode a))) (vla-rotate b (vlax-3d-point pt)(/ (* pi Rot) 180)) (vla-put-layer b calque_Tempo)) (vla-delete a) ) ... voilà, c'est tout merci encore.
  5. Bred

    vla-InsertBlock

    He bien j'crois c'est CLAIR !!!!... ça fonctionne trés bien... Donc... ... permet de calculer l'angle entre le point (0 0 0) et le point donné par UCSXDIR trans(formé) en ... là, y'a des neuronnes qui sont devenu fluorescentes!!!... Si du côté d'Antibes cette nuit il y a un gros flash, c'est moi qui n'aurait pas tenu le choc à tenter de comprendre... En tout cas merci (pas pour mes neuronnes...) :P
  6. Bred

    vla-InsertBlock

    j'ai vérifier en testant... :casstet: Je ne comprend pas... :P (setq pt (getpoint)) (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point (trans pt 1 0)) "mon block" 1 1 1 0) Lorsque je déplace mon SCU sur Z (rotation sur les Z), les blocs s'insère selon le SCG... ... Lorque je fait une rotation par 3 point (X, Y et Z changent) ça à l'air de fonctionner... sauf que le bloc ne s'insert plus sur le bonne axe (Y à la place de X par exemple...) Merci de votre aide ...
  7. Bred

    vla-InsertBlock

    Ceci, je l'avais trouvé (avec UCSYDIR aussi ...) mais j'ai vraimment du mal à mettre en écrit le programme, car j'ai aussi l'angle des Z qui peut rentrer en jeu (exemple : je dois poser un Bloc "cube" sur un sol en pente...) Autant avec le -insert d'autocad cela se fait automatiquement, autant j'ai du mal à déterminer la manière en vl pour dire à mon bloc de s'orienter ET s'incliner ... (l'orientation je vois, mais l'inclinaison sur les Z...) merci
  8. Bred

    vla-InsertBlock

    Bonjour, Des maîtres Lispien m'ont appris à inseré un bloc (et à le taiter enssuite) grâce à (vla-InsertBlock... Mais j'ai vraiment un souci d'orientation. Vu que l'insertion se fait dans le SCG, j'arrive bien à récupérer le point comme on me l'a appris (trans...), mais je n'arrive pas à récupérer l'ORIENTATION du SCU... afin que mon bloc inseré soit bien dans le sens du SCU affiché... merci d'avance
  9. Bred

    explode...

    Merci à vous deux.... ...et à mon prochain souci !!!...
  10. Bred

    explode...

    Merci énormément de votre aide. Si vous pouviez me donner vos avis, après quelque test j'en suis arrivé à ceci (ça fonctionne comme je veux donc j'en suis content) : (setq a (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point (list 0.0 0.0 0.0)) "Mon_Bloc" 1 1 1 0)) (foreach b (vlax-safearray->list(vlax-variant-value (vla-explode a))) (vla-put-layer b "MON_CALQUE")) (vla-delete a) Est-ce assez... propre ??? Merci d'avance.
  11. Je suis débutant en lisp, mais je pense que tu peux trouver ton bonheur grâce à la commande lisp (findfile ) > si le fichier existe (dans tes chemins de recherche) il te retourne le chemin complet du fichier > si le fichier n'existe pas, il te retourne nil, et donc tu créé le fichier...
  12. Bred

    explode...

    OK...OK...OK... J'essaye un peu de comprendre tout ça... et je suis un peu largué.... mais bon... je vais y arriver.... :casstet: J'ai compris l'idée (pas le principe ni la manière...) de transformer un variant en LISTE de vla-object... et c'est là où je plante : je veux traiter ces vla-object pour les changer de calques... comme les fonctions vl sont du domaine du "flou artistique" pour moi, j'essaye de transformer desespérément cette liste de Vla-object en entité lisp et je rame sec (j'ai trouvé la manière de transformer UN vla-object en entité comme suit (aide): (setq ename-circle (car (entsel "\nPick a Circle:"))) ;;; (setq vlaobject-circle (vlax-ename->vla-object ename-circle)) ;;; # (setq new-ename-circle (vlax-vla-object->ename vlaobject-circle)) ;;; ... Mais une LISTE de Vla-object je plante lamentablement.... si vous pouviez me guider... Mais bon... j'imagine que pour changer la liste de vla-object il y a une manière plus .... "vla"... mais je fais avec ce que je sait (ce que vous m'avez appris en fait) pour l'instant.... merci d'avance
  13. Bred

    explode...

    Suite à mes (nombreux) différent sujet concernant les insertions de blocs, et suite à toutes vos réponses, une petite question suplémentaire : Je voudrais récupérer dans une variable tout les objet exploser avec vla-explode (à forcieri ces objets sont des blocs, vu que j'explose un blocs constitué de plusieur blocs...) Ceci pour pouvoir mettre ces objets dans un calque autre que le calque dans lequel ils ont été créé afin de pouvoir tous les récuperer (vu que je fais l'insertion/explosion en bloucle) avec un (setq sel (ssget "_X" '((8 . "nom_calque")))) (en fait la commande autocad qui va bien c'est "xplode", mais avec le souci de selection (ou non-selection) d'objet non visible à l'écran, je me retrouve avec des choses bizarres...) (setq a (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point pt) chembloc 1 1 1 (/ (* pi Rot) 180))) (vla-explode a) ;;; > là !!! (vla-delete a) Mais peut-être que je me trompe dans la méthode ??? merci
  14. Bred

    coller en temp que bloc...

    Bon... ben je crois qu'il faut que je me plonge dans "entmake"... Y aurait t'il quelqu'un qui pourait me guider pour créer un bloc imbriqué avec entmake ???... L'orsque je fais un entget sur un bloc imbriqué, je ne vois pas de différence avec un bloc seul... C'est plus .... "profond" ???
  15. Bred

    Besoin correction SVP

    Merci à tous (ce n'est pas encore ça mais ça vient ...) en adaptant les réponses de tout le monde j'arrive presque à ce que je veux : (pour info je suis en °) (defun c:insb () (setq bloc "mon_bloc") (setq h (getint "\n Hauteur :")) (initget 1) (setq pt (trans (getpoint "\n Point d'insertion :") 1 0)) (setq Rot 0) (repeat (fix h) (InsBlocdec pt bloc Rot) (setq pt (list (car pt) (cadr pt) (+ (caddr pt) 2.00)) Rot (+ Rot 180))) ) ;;;;;;;;; Insert bloc rotation Rot + DECOMPOSER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun InsBlocdec (pt chem Rot / a) (setq a (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point pt) chem 1 1 1 (/ (* pi Rot) 180))) (vla-explode a) (vla-delete a) ) L'insertion des blocs se fait super bien (merci patrick) La décomposition aussi (merci général) ... le seul souci étant que je récupère bien le bon point d'insertion maitenant (grâce au (setq pt (trans (getpoint "\n Point d'insertion :") 1 0)) .... (merci bonuscad) mais que je n'est pas la DIRECTION (ou le sens) !!! ... merci
  16. Bred

    Besoin correction SVP

    ... Alors là je ne comprend vraiment pas la raison (j'ai vraiment l'impression d'être largué moi...)
  17. Bred

    Tab...

    Truc utile que je viens de découvrir : Au clavier, il est possible de ne taper que quelques lettre d'une commande, puis en appuyant sur "Tab", Les commandes commençant par cette (ces) lettre defilent...
  18. Bred

    Besoin correction SVP

    merci... mais : - le "*mon_bloc" je l'avais testé, et le souci est que le bloc est constitué de plusieurs blocs imbriqué, ce qui donne un résultat bizarre pour les points d'insertion... - en vla de Patrick_35 : ça à l'air de fonctionner, sauf que j'ai des choses bizarre si mon scu n'est pas en général... + remarque ci-dessous - en vla de Tramber : ça fonctionne, sauf que j'ai le bloc non explosé qui reste sous le bloc explosé...
  19. Bonjour, Je ne comprend pas d'où peut venir mon erreur : Insertion de bloc tout les 2.00 vers les Z, avec rotation de 180° à chaque fois : (defun c:insb () (setq bloc "mon_bloc") (setq h (getint "\n Hauteur :")) (initget 1) (setq pt (getpoint "\n Point d'insertion :")) (setq Rot 0) (repeat (fix h) (InsBlocdec pt bloc Rot) (setq pt (list (car pt) (cadr pt) (+ (caddr pt) 2.00)) Rot (+ Rot 180))) ) ;;;;;;;;; Insert bloc rotation Rot + DECOMPOSER;;;;;;;;;;; (defun InsBlocdec (pt chem Rot) (command "-inserer" chem pt "1" "1" Rot "_explode" (ssget "_L")) ) ==> ça fonctionne selon la hauteur, puis sa bug si la hauteur est un peu grande (ex : 20), en refusant de décomposer le 2 derniers blocs.... merci de vos conseils...
  20. Bred

    Insertion bloc...

    Ok merci ça marche.... Juste pour info, je suis quand même obligé de changé les ../.. du chemin de fichier par des ...\\... Merci encore.
  21. Bred

    coller en temp que bloc...

    Désolé, je n'ai pas précisé que mon Autocad était paramétré avec GRIPBLOCK sur 0... Mon "argument" tients toujours pour ce qui est du déplacement des pièces dans un groupe par les poignées que l'on n'a pas dans un bloc...
  22. Bred

    Insertion bloc...

    Je suis désolé mais je ne comprend pas et ça ne fonctionne toujours pas... même si je rentre le chemin total du fichier de recherche (avec les \\... ou avec /...) Confirmez moi que sa fonctionne et je continuerais à chercher où je fais une erreur... merci encore...
  23. Bred

    coller en temp que bloc...

    J'y ai pensé, mais je n'aime pas les groupes car ils proposent à la selection (à moins que ne ne connaisse pas toutes les options) toutes les poignées de chaques objet, et qu'un objet est déplaçable par les poignées indépendements du reste... Donc pour mon exemple ci-dessus, si je veux déplacer l'objet il faut que je le fasse sans l'aide des poignées, et avec un point d'accrochages selon la poignée choisi... Ce phénomème ne se retrouve pas quand on transforme une selection en bloc "temporaire" (je ne sais pas quel est le nom exact de ces blocs créé avec "coller en tant que bloc")...
  24. Bred

    coller en temp que bloc...

    J'insert plusieurs blocs en lisp qui forme un ensemble, et cet ensemble je veux en faire un bloc (utile QUE pour le dessin en cours), afin de pouvoir le manipuler + facilement si besoin... Exemple : j'insère en lisp un boulon + un écrou + une rondelle (en réglant l'écrou), et je veux que ces 3 blocs formes un bloc unique afin de le copier/déplacer sans selectionner à chaque foir les 3 blocs independament...
  25. Bonjour, Existe t'il une manière plus propre de créer un bloc "temporaire" qu'avec les commandes autocad du genre : (command "_copybase" pt sel "") (command "_pasteblock" pt) (command "_erase" sel "") Je cherche juste à "assembler" plusieur blocs après les avoir inserer en lisp... Merci d'avance.
×
×
  • 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é