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. Encore Re. Non, j'ai presque compris le (mapcar et le (lamda (merci Patrick_35), mais je suis très loin de les utiliser parce-que je n'ai pas encore le réflexe d'utiliser des listes, ce qui est un comble, je l'avoue, en programmation AutoLisp... ;)
  2. Re. Merci pour ta sollicitude. Mais tout n'est pas tout noir, j'ai enfin compris ce que veut dire : (setq Obj (entget (car (entsel "Cliquer l'entité :")))) ainsi que : (setq Obj (entget (car (nentsel "\nCliquer l'altitude dans le bloc :")))) Donc, les (assoc qui suivent dans les codes (que je ne comprenais pas) et pour finir, le (entmod pour mettre à jour l'entité... J'ai même tenté un (entmake, mais je ne connais pas encore les codes DXF impératifs à la construction d'entités via cette commande.
  3. Bonjour à tous. didier : désolé pour la faute, il en passe une de temps en temps, généralement, celle-là, je ne la fais pas :huh: Pour le formateur, ma direction n'a pas suivi mes désires et a choisi un formateur "improvisé" près de chez nous... Mais je suis déçu de cette formation, j'en attendais tellement, bien que le formateur était très sympas... :( Deux jour pour faire cette DCL et le code qui la gère, et on n'a pas fini, du coup, je me retrouve avec un couple DCL/LISP qui est bancale que je tente de faire fonctionner correctement... (gile) : mais ça ne m'a pas appris grand chose...
  4. Re. Judicieuse remarque... Il va falloir que je me retape tout, car mon code est beaucoup plus grand que ce que j'ai posté... Mais je le ferais, tes conseils sont tellement bons... ;) A ce sujet, pourrais-tu, s'il te plait, me donner ton avis sur ce que j'ai fais en formation ? Je suis curieux de connaitre l'avis d'un "vrai" formateur (les autres aussi peuvent participer, bien-sur). On a fait ça en deux jours, et tout ne fonctionne pas...! Petite cerise, pendant la formation, je lui corrigeais parfois ces codes...
  5. J'ai oublié de poster mon DCL : :boxed_row {label = "Inclure les coordonées :"; key = "XYZ"; :radio_button {label = "Oui"; key="XYZOui";} :radio_button {label = "Non"; key="XYZNon";} } :boxed_row {label = "Saisie d'un texte avant :"; key = "TxtAv"; :radio_button {label = "Oui"; key="TxtAvOui";} :radio_button {label = "Non"; key="TxtAvNon";} } :boxed_row {label = "Saisie d'un texte après :"; key = "TxtAp"; :radio_button {label = "Oui"; key="TxtApOui";} :radio_button {label = "Non"; key="TxtApNon";} }
  6. Re. J'ai donc suivi ton code et j'ai écris ça : LSP (if (= Xyz "Oui") (set_tile "XYZOui" "value = 1") (set_tile "XYZOui" "value = 0") ) ;_ Fin de if (if (= SaisiTxtAv "Oui") (set_tile "TxtAvOui" "value = 1") (set_tile "TxtAvOui" "value = 0") ) ;_ Fin de if (if (= SaisiTxtAp "Oui") (set_tile "TxtApOui" "value = 1") (set_tile "TxtApOui" "value = 0") ) ;_ Fin de if (action_tile "XYZOui" "(vlax-ldata-put \"DenisH\" \"FlXYZ\" \"Oui\")" ) (action_tile "XYZNon" "(vlax-ldata-put \"DenisH\" \"FlXYZ\" \"Non\")") (action_tile "TxtAvOui" "(vlax-ldata-put \"DenisH\" \"FlXYZSaisiTxtAv\" \"Oui\")") (action_tile "TxtAvNon" "(vlax-ldata-put \"DenisH\" \"FlXYZSaisiTxtAv\" \"Non\")") (action_tile "TxtArOui" "(vlax-ldata-put \"DenisH\" \"FlXYZSaisiTxtAp\" \"Oui\")") (action_tile "TxtApNon" "(vlax-ldata-put \"DenisH\" \"FlXYZSaisiTxtAp\" \"Non\")") Mais ça ne fonctionne pas...
  7. Bonjour (gile), et merci de me répondre. En fait, mon formateur m'a fait écrire ça : :boxed_column {label = "Paramètres du texte :"; :row {:text {label = "Inclure les coordonées :";} :radio_button {label = "Oui"; key="XYZOui";} :radio_button {label = "Non"; key="XYZNon";} } :row {:text {label = "Saisie d'un texte avant :";} :radio_button {label = "Oui"; key="TxtAvOui";} :radio_button {label = "Non"; key="TxtAvNon";} } :row {:text {label = "Saisie d'un texte après :";} :radio_button {label = "Oui"; key="TxtApOui";} :radio_button {label = "Non"; key="TxtApNon";} } } Mais il cafouillait énormément et on a mit 2 heures pour écrire ça...
  8. Bonjour à tous. Voilà, aujourd'hui, j'ai fais un(e) super DCL qui fonctionne très bien. Sauf lorsque je la charge. :huh: En effet, je cherche à modifier le "value" d'un "radio_button". J'ai ça, et c'est inopérant : (if (= Xyz "Oui") (set_tile "XYZOui" "value = 1") (set_tile "XYZNon" "value = 1") ) ;_ Fin de if Et j'ai, dans le (la) DCL : :row {:text {label = "Inclure les coordonées :";} :radio_button {label = "Oui"; key="XYZOui";} :radio_button {label = "Non"; key="XYZNon";} } Si quelqu'un a une astuce, un conseil... Je suis preneur...
  9. Salut. Je ne pense pas à un bug, j'ai Map 2017 et MBUTTONPAN à 1 et tous fonctionne très bien.
  10. J'attend avec impatience aussi l'explication. Personnellement, je place mes points toujours en double : en XY et Z=0 dans le calque Points 2D, en XYZ dans le calque Points 3D. De cette façon, le client a toujours la possibilité de travailler "à pat" à Z=0 mais il peut aussi faire une modélisation du terrain, par exemple, grâce aux points 3D. Mais j'évite d'encombrer le client avec les matricules, mais parfois, c'est tout de même utile pour quand on parle avec lui de savoir de quel point on parle...
  11. Salut. didier : je suis entièrement d'accord avec toi, mais comment fais-tu lorsqu'il y a un texte devant l'altitude, comme pour les seuils (S=) ou les tampons (T=) ?
  12. Re. J'ai essayé de simplifier (surtout pour récupérer les coordonnées du bloc) de façon à ce que les coordonnées du texte à placer soient plus proches, mais je n'y arrive pas, j'avais ce code : (setq Txt_Blk (entsel "\nSélectionner l'altitude du bloc :") Txt_Alti (getpropertyvalue Txt_Blk "ALT") Coord (cdr (assoc 10 (entget (car Txt_Blk)))) ) ;_ Fin de setq Mais AutoCAD me répond :
  13. Ok, je viens de modifier ma routine pour tes besoin. Tu cliques sur l'altitude dans le bloc, Tu clique sur le segment de polyligne pour récupérer la rotation Tu place la nouvelle altitude sous forme de texte. Voici le code : (defun c:RecupAlti (/) (setq Txt_Alti (cdr (assoc 1 (entget (car (nentsel "\nSélectionner l'altitude du bloc :"))))) ) ;_ Fin de setq (if (setq e_seg (entsel "\tSélectionnez le segment de la polyligne ou [ENTRÉE] pour un texte horizontal : ") ;_ Fin de entsel ) ;_ Fin de setq (progn (setq typent (cdr (assoc 0 (setq dxf_ent (entget (car e_seg)))))) (cond ((or (eq typent "XLINE") (eq typent "RAY")) (setq dxf_11 (cdr (assoc 11 dxf_ent))) (setq x_alpha (angtos (atan (/ (cadr dxf_11) (car dxf_11))))) (grdraw (trans (cdr (assoc 10 dxf_ent)) 0 1) (polar (trans (cdr (assoc 10 dxf_ent)) 0 1) x_alpha (distance (getvar "vsmin") (getvar "vsmax"))) ;_ Fin de polar -1 1 ) ;_ Fin de grdraw ) ((eq typent "LINE") (setq x_alpha (angtos (angle (cdr (assoc 10 dxf_ent)) (cdr (assoc 11 dxf_ent))) ;_ Fin de angle ) ;_ Fin de angtos ) ;_ Fin de setq (grdraw (trans (cdr (assoc 10 dxf_ent)) 0 1) (trans (cdr (assoc 11 dxf_ent)) 0 1) -1 1) ;_ Fin de grdraw ) ((or (eq typent "LWPOLYLINE") (and (eq typent "POLYLINE") (zerop (boole 1 118 (cdr (assoc 70 dxf_ent))))) ;_ Fin de and ) ;_ Fin de or (setq l_2pt (near_vertex_arr e_seg)) (grdraw (car l_2pt) (cadr l_2pt) -1 1) (if (zerop (caddr l_2pt)) (setq x_alpha (angtos (angle (trans (car l_2pt) 1 0) (trans (cadr l_2pt) 1 0)) ;_ Fin de angle ) ;_ Fin de angtos ) ;_ Fin de setq (progn (princ "\nNe peut obtenir un angle depuis ce type d'objet!") ;_ Fin de princ ) ;_ Fin de progn ) ;_ Fin de if ) ) ;_ Fin de cond ) ;_ Fin de progn (setq x_alpha 100) ;_ Fin de setq ) ;_ Fin de if (command "_.text" "j" "mc" "0,0,0" 0.15 x_alpha (rtos (atof Txt_Alti) 2 2)) (command "_move" "_last" "" "_non" "0,0,0" pause) (princ) ) ;_ Fin de defun Le style de texte par défaut ne doit pas avoir de hauteur, elle doit être égale à 0 La hauteur du texte est le "0.15" dans la ligne (command "_.text" "j" "mc" "0,0,0" 0.15 x_alpha (rtos (atof Txt_Alti) 2 2)) Tiens nous au courant si c'est ce que tu voulais... Denis...
  14. essai via WeTransfer
  15. Re. Quel est le nom de l'étiquette de l'attribut qui contient l'altitude ? Poste ton bloc, ça ira plus vite...
  16. Salut. J'ai fais ce code (avec l'aide habituelle de CadXP) la semaine dernière : ;;;************************************************************** ;;; Placement d'une altitude en sélectionnant la version "brute" ;;;************************************************************** (defun c:PlaceAlti (/ Txt_Clic Txt_Alti Coord) (setq Txt_Clic (car (entsel "\nSélectionnez l'altitude :")) Txt_Alti (cdr (assoc 1 (entget Txt_Clic))) Coord (cdr (assoc 10 (entget Txt_Clic))) Calq (cdr (assoc 8 (entget Txt_Clic))) ) ;_ Fin de setq (if (setq e_seg (entsel "\tSélectionnez le segment de la polyligne ou [ENTRÉE] pour un texte horizontal : ") ;_ Fin de entsel ) ;_ Fin de setq (progn (setq typent (cdr (assoc 0 (setq dxf_ent (entget (car e_seg)))))) (cond ((or (eq typent "XLINE") (eq typent "RAY")) (setq dxf_11 (cdr (assoc 11 dxf_ent))) (setq x_alpha (angtos (atan (/ (cadr dxf_11) (car dxf_11))))) (grdraw (trans (cdr (assoc 10 dxf_ent)) 0 1) (polar (trans (cdr (assoc 10 dxf_ent)) 0 1) x_alpha (distance (getvar "vsmin") (getvar "vsmax"))) ;_ Fin de polar -1 1 ) ;_ Fin de grdraw ) ((eq typent "LINE") (setq x_alpha (angtos (angle (cdr (assoc 10 dxf_ent)) (cdr (assoc 11 dxf_ent))) ;_ Fin de angle ) ;_ Fin de angtos ) ;_ Fin de setq (grdraw (trans (cdr (assoc 10 dxf_ent)) 0 1) (trans (cdr (assoc 11 dxf_ent)) 0 1) -1 1) ;_ Fin de grdraw ) ((or (eq typent "LWPOLYLINE") (and (eq typent "POLYLINE") (zerop (boole 1 118 (cdr (assoc 70 dxf_ent))))) ;_ Fin de and ) ;_ Fin de or (setq l_2pt (near_vertex_arr e_seg)) (grdraw (car l_2pt) (cadr l_2pt) -1 1) (if (zerop (caddr l_2pt)) (setq x_alpha (angtos (angle (trans (car l_2pt) 1 0) (trans (cadr l_2pt) 1 0)) ;_ Fin de angle ) ;_ Fin de angtos ) ;_ Fin de setq (progn (princ "\nNe peut obtenir un angle depuis ce type d'objet!") ;_ Fin de princ ) ;_ Fin de progn ) ;_ Fin de if ) ) ;_ Fin de cond ) ;_ Fin de progn (progn (princ "\nAngle pris par rapport à la vue active") (setq x_alpha (vlax-ldata-get "DenisH" "AngSCU")) ;_ Fin de setq ) ;_ Fin de if ) ;_ Fin de if (command "-style" "Altitude" "" "" "" "" "" "" "") (command "_.text" "j" "mc" Coord 0.15 x_alpha (rtos (atof Txt_Alti) 2 2)) (command "_move" "_last" "" "_non" Coord pause) (princ) ) ;_ Fin de defun Tu as juste à utiliser la commande "burst" des ExpressTools avant. Tu sélectionne ton altitude (un texte) et le segment de droite pour l'alignement, puis, tu places l'altitude. Sinon, il faudra changer ce code pour sélectionner un attribut au lieu d'un texte. A+
  17. Alors, je pense avoir compris, mais je ne sais pas si je vais bien l'exprimer. Mon (setq Txt_Clic faisait référence à la totalité de l'entité sélectionnée. Alors que ton (setq Txt_Clic est le nom de l'entité, dont on peut demander plus tard les différents codes DXF avec les (assoc X (entsel.
  18. Salut didier, et merci pour ton aide. Ça fonctionne nickel...
  19. Bonjour à tous, et désolé de cette absence, j'étais en long week-end. Alors voilà, j'ai écris ça, mais je n'obtient pas ce que je voudrais : (defun c:PlaceAlti (/) (setq Txt_Clic (entsel "\nSélectionnez l'altitude :")) (setq Txt_Alti (cdr (assoc 1 Txt_Clic))) (setq Coord (cdr (assoc 10 Txt_Clic))) (princ "\nAltitude=") (princ Txt_Alti) (princ "\nCoordonnées=") (princ Coord) (princ) ) ;_ Fin de defun Le but est de récupérer le texte et les coordonnées d'un TEXT que je sélectionne.
  20. Salut nosset, et merci pour ton aide. Mais je n'arrive pas à séparer les coordonnées. J'ai fais ce petit code, mais ça ne donne rien : (defun c:PlaceAlti (/) (setq Txt_Clic (entsel "\nSélectionnez l'altitude :")) (setq Txt_Alti (car Txt_Clic)) (setq Coord (cdr (assoc 10 Txt_Clic))) (princ "\nAltitude=") (princ Txt_Alti) (princ "\nCoordonnées=") (princ Coord) (princ) )
  21. Bonjour à tous. Voilà, je tente une routine qui récupère un texte avec : (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :"))) Mais j'aimerais, "en même temps" récupérer les coordonnées de ce clique. Si quelqu'un a une astuce, un conseil, je suis preneur...
  22. Salut à tous. DaWeeD_Gab : le simple fait d'insérer un PDF plante mon AutoCAD, je ne peut rien faire ensuite. Geof : cette commande fonctionne parfaitement, mille mercis... Denis...
  23. Cela m’intéresse au plus haut point... Si tu pouvait en dire un peu plus... ;)
  24. Salut à tous. Si quelqu'un sait comment convertir un PDF en DWF/DXF dans AutoCAD, je suis preneur, car je n'ai rien trouvé dans l'aide...
  25. (gile), que dire... Génial, je comprend maintenant le débogueur... :) Tu peur le "clouer" dans "Débuter en LISP", je suis sur que ça servira à d'autres... Et j'ai trouvé les erreurs, comme dans ton exemple... Et ma routine fonctionne super... Encore un super grand merci à toi... ;)
×
×
  • 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é