Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. Salut Patrick_35, et merci. C'est curieux, ça ne pose pas de problèmes sur un autre bloc... :huh: Ca fonctionne nikel... Merci pour l'astuce... Et le petit ps... ;)
  2. Bonjour à tous, Voilà, je n'ai rien trouvé sur l'erreur dans un petit lisp que je viens d'écrire, voici le code : ;;;************************************************************** ;;; Saisie de la profondeur "Amont" pour l'injecter dans un bloc ;;;************************************************************** (defun c:SDEHM_ProfAmont (/ doc Prof ent_bloc Prof) (princ "\nDéveloppé par Denis H. pour le SDEHM") ;;; Active le début de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq Prof (rtos (getreal "\nEntrez la profondeur Amont : ") 2 2)) (setq ent_bloc (entsel "\nSélectionnez le bloc: ")) (setq ent_bloc (car ent_bloc)) (setpropertyvalue ent_bloc "PROF_AMO" Prof) (setpropertyvalue ent_bloc "PROF_AM" Prof) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun Et voici l'erreur : Si quelqu'un a une astuce, une idée ou autre... Je suis preneur... Denis...
  3. Re, Merci à tous, j'ai réussi à faire ce que je voulais... Malheureusement, je ne peux pas poster car ça fait partie d'une routine plus grande qui utilise d'autres lisp (comme ListBox de (gile))... Encore merci à tous... Denis... (qui va reprendre un Efferalgan...)
  4. Merci à vous pour votre aide... (gile) : merci pour cette précision, une fois de plus très judicieuse... ;) Chti Julien : la valeur de l'attribut pouvant être vide, on ne peut donc pas cliquer dessus... Bon, je m'y colle... Merci encore à vous...
  5. Merci Patrick_35, je me soigne et verrai ton lisp demain. Merci didier, effectivement, ma phrase pouvait être interprétée autrement, je n'avais pas fais attention... Je n'ai jamais été malade comme ça ! ! Encore merci à vous...
  6. En gros, ce que j'aimerais faire, c'est cliquer n'importe quel entité d'un bloc et attribuer "Béton" à son attribut "MATERIAU"... Si quelqu'un a ça dans sa musette, ou autre, je suis preneur... En plus, j'ai une crève terrible alors je vais continuer chez moi... Merci à tous...
  7. Salut didier, et merci de m'aider. Un de mes problèmes, c'est que l'attribut du bloc peut être vide, et donc, je ne peut pas cliquer dessus... Je devrais cliquer sur une autre partie du bloc...
  8. Salut Patrick_35, et merci pour ta réponse. Je n'arrive pas à bien saisir cette routine "valatt". Je m'y perd... Mon problème aujourd'hui, c'est que je n'ai pas le temps de chercher, c'est rare, mais ça m'arrive. Je sais que ce n'est pas comme cela qu'on apprend... Je vais avoir des centaines de blocs à remplir et des dizaines de routines à construire... Et pour demain ! ! ! Je dois tripatouiller d'autres routines pour en faire une type... Au plus vite... Mais entendons-nous bien, je ne demande à personne de le faire à ma place... Mais merci tout de même pour ta bienveillance...
  9. Bonjour à la communauté. Voilà, je cherche à remplir un attribut de bloc en le sélectionnant... Voici mon Lisp : (defun c:SDEHM_Materiau ( /ent_bloc LstMateriau att Materiau) (princ "\nDéveloppé par Denis H.") (setq ent_bloc (entsel "\nSélectionnez le bloc: ")) (setq ent_bloc (car ent_bloc)) (if (/= (cdr (assoc 0 (entget ent_bloc))) "INSERT") (progn (princ (strcat "\nVous devez sélectionner un bloc.")) (+ "Erreur" 15) ) ;_ Fin de progn ) ;_ Fin de if (princ "\n") (princ ent_bloc) (setq Materiau "01.Béton") (cond ((= (cdr (assoc 2 att)) "MATERIAU") (setq att (subst (cons 1 Materiau) (assoc 1 att) att)) (entmod att) ) ) ;_ Fin de cond ) ;_ Fin de defun Mais le lisp ne fait rien... J'aimerais savoir où je me suis planté...
  10. DenisHen

    Comment aligner un plan ?

    Merci Tramber de me corriger, je me suis planté...
  11. DenisHen

    Comment aligner un plan ?

    Entièrement d'accord... J'ai déjà bossé sur des plans contenant des blocs "anonymes"... Une vrai galère ! ! !
  12. DenisHen

    Comment aligner un plan ?

    +1 avec x_all... La commande ALIGNER est magique, elle permet aussi de conserver l'échelle... Ou pas... Elle procède à un changement de base + une rotation (qui se résume à une translation, si mes souvenirs sont bon) en deux points. Elle permet aussi de changer l'échelle du plan à aligner (qui est une adaptation d'après les mêmes souvenirs). Denis...
  13. DenisHen

    Lisps de DenisHen

    Ajout de "Remplacement de blocs"
  14. Salut. Je m'étais fais un petit Lisp qui fais la même chose que RBloc (donc, pas de souris) mais sans fenêtre et qui pioche dans une liste de correspondance de blocs. Tu n'as qu'à remplacer AncienBloc* et NouveauBloc* par les tiens. La commande est "RemplBlk" : ;;;********************************** ;;; Remplacement de blocs (DenisH) ;;;********************************** (defun c:RemplBlk () (princ "\nRemplacement des blocs...") (setq Select nil) (princ "\nDébut du remplacement des blocs") (setq LstBlk '(("AncienBloc1" . "NouveauBloc1");;;ICI*************************** ("AncienBloc2" . "NouveauBloc2");;;ICI*************************** ) ) ;_ Fin de setq ;;;Début de la boucle (foreach PosLstBlk LstBlk (setq n 0) ; initialisation de l'indice (if (setq Select (ssget "_A" (list (cons 0 "INSERT") (cons 2 (car PosLstBlk))) ) ;_ Fin de ssget ) ;_ Fin de setq (while (setq ent (ssname Select n)) (setq elst (entget ent) ; liste DXF de l'objet Coord (cdr (assoc 10 elst)) EchX (cdr (assoc 41 elst)) EchY (cdr (assoc 42 elst)) Rot (cdr (assoc 50 elst)) n (1+ n) ) ;_ Fin de setq (setvar "clayer" (cdr (assoc 8 elst))) (command "_erase" ent "") (setq Coord (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3) ) ;_ Fin de strcat ) (setq Rot (+ Rot (/ pi 2))) (command "-inserer" (cdr PosLstBlk) "_non" Coord EchX EchY (angtos Rot 2 3) ) ) ;_ Fin de while ) ;_ Fin de if ) ;_ Fin de foreach ) ;_ Fin de defun ATTENTION : les attributs ne sont pas pris en compte... Petite précision, AncienBloc* peut contenir des caractères générique. Exemple, si AncienBloc* = "PTT_1*" tous les blocs commençant par PTT_1 seront remplacés par NouveauBloc*. Très pratique quand le DWG n'a pas été fait par un produit AutoDesk et que les mêmes blocs comporte une incrémentation. En espérant d'avoir aidé... Denis...
  15. Salut au Décapode. Je ne sais pas si ça peut t'aider, mais j'ai un Lisp de (gile) modifié par BonusCAD qui crée un jeu de sélection avec tous les objets contenus ou capturés, dans la vue courante, par l'objet sélectionné (cercle, ellipse, polyligne fermée). Ça ne fait pas ce que tu veux, mais je pense que ça peut servir de base... En espérant que ça te serve. Denis... SupCommuneVide_BonusCad.zip
  16. DenisHen

    ligne complexe

    Salut, philous2 : effectivement, c'était issu d'une ancienne configuration, maintenant, elle n'a plus lieu d'être...
  17. DenisHen

    ligne complexe

    Je pense que tu peux t'inspirer de ce type de ligne (à placer dans un .lin) : *RAIL_GAUCHE,_____|||_____|||_____|||_____ A,0.1,["|",Standard,s=0.1,y=-0.12],["|",Standard,s=0.1,y=-0.12],["|",Standard,s=0.1,y=-0.12],1 Cette ligne devra être intégrée dans ton type de multiligne.
  18. DenisHen

    ligne complexe

    Salut. Je pense qu'on peut faire des "lignes perpendiculaires" entre deux lignes d'une les multilignes. En créant un style de ligne type "talus" qui sera la ligne de gauche et une ligne simple qui sera la droite. J'ai ça quelque-part... Voici deux types de ligne comprenant des "lignes perpendiculaires" (qui sont en fait le caractère "|" obtenu avec AltGr+6)... : *VGT_TALUS_DROITE,VGT_TALUS A,0.1,["|",Standard,s=0.1,y=-0.12],0.2,["|",Standard,s=0.3,y=-0.36],0.1 *VGT_TALUS_GAUCHE,VGT_TALUS A,0.1,["|",Standard,s=0.1,y=-0.12],0.2,["|",Standard,s=0.3,y=-0.36],0.1
  19. Salut. Un grand merci à vous tous pour toutes ces explications, claires et limpides... C'est vrai que je ne pense jamais à cond, c'est dommage... Je perd beaucoup de temps à faire des if avec des conditions à perte de vu... Faut que je m'y mette...
  20. Bonjour à tous. Voilà, je vois souvent les pros du lisp placer des setq dans des if Perso, j'ai "appris" comme-ça : (setq ech (vlax-ldata-get "DenisH" "Ech")) (if ech (princ "\nEchelle connue) (princ "\nEchelle inconnue) ) Mais je vois souvent des trucs comme : (if (setq ech (vlax-ldata-get "DenisH" "Ech")) (princ "\nEchelle connue) (princ "\nEchelle inconnue) ) Y-a-t'il une "norme" ou de l'aide sur la "méthode" car je n'ai rien trouvé comme réelles explications la dessus ? Et l'un va-t'il plus vite que l'autre ? Denis...
  21. DenisHen

    Lisps de DenisHen

    Avec plaisir... Sers-toi...
  22. Salut didier. C'était bien du VBA et sous Excel (deuxième ligne du titre)... Mais je viens de trouver un truc, ObliqueAngle veut un angle en radians... Je pense que c'était là que je "piochais"... Merci pour ton intérêt...
  23. Ca, j'ai compris... Pour le reste, j'ai du mal. Mais si c'est pour "intégrer" des données aux objets (comme les OD) là, j'avoue que ça m'intéresse au plus haut point... Je cherche aussi à gérer des polylignes avec des OD pour un export SHAPEFILE... Et si AutoCAD MAP gère tout seul les OD directement en lien avec un SHAPEFILE... Je suis super curieux car j'ai une grosse lacune sur ce point... Denis...
  24. Bonjour à tous. Voilà, j'ai fais une suite de routines qui, depuis Excel, créent des calques, filtres de calques, types de ligne et style de texte. Mon souci vient du style de texte avec .ObliqueAngle, je n'arrive pas à savoir ce qu'il veux exactement. Déjà que dans AutoCAD même c'est pas évident. quand je rentre "-20" dans l'angle d'inclinaison, AutoCAD me le corrige en 20, mais si je rentre 20 directement, AutoCAD me le change en 80... :blink: Alors en VBA... Quoi lui donner, il refuse déjà les nombres négatifs, il accepte le 1 mais pas le 2 :blink: Si quelqu'un avait une réponse là-dessus, je suis preneur...
  25. DenisHen

    Lisps de DenisHen

    Ajout de "Configuration de calques"...
×
×
  • 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é