Hydro8
Membres-
Compteur de contenus
227 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Hydro8
-
Merci je n'avais jamais utilisé la cotation par etiquettes. Seul point dommage c'est qu'il y a que entre deux points et que si on se trompe de point il n'y a pas l'option sortie comme la cotation linéaire.
-
Bonjour. J'utilise beaucoup la cotation linéaire de covadis, que ça soit entre deux points ou une polyligne directement. Cependant j'ai un problème avec le sens des côtes. Dans notre cabinet nous écrivons les côtés verticales de bas en haut. Covadis me côte un moment dans un sens un moment dans l'autre. J'ai essayé de changer le sens de la polyligne mais toujours le même problème. Peut-on lui dire d'une façon ou d'une autre d'écrire les côtes verticales toujours dans le même sens ? Merci de votre aide.
-
Héhé encore moi :) Petite question pour le lisp pour souligné le texte et faire la flèche, vous savez pourquoi dans certain dessin le soulignage est super près du texte et parfois on le voit pas ? Une question d'échelle ? de texte ? Je n'ai pas forcément la main sur les plans reçus :/
-
Voilà mon lisp final avec la possibilité de mettre une altitude haute et basse : ;;; *********************************************************** ;;; Dessine un contour, puis place un texte incr?ment? et la ;;; surface dans un multitexte et dans des Xdata ;;; Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:msurfacefraction (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 MText EcritText) (princ "\nDéveloppé par Denis H. (v:3.0)") (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m ) ) ;_ Fin de defun (defun EcritText (/ xSurf xMatri xBasse xHaute Pt_Deb_Fle Pt_Fin_Fle Pt_Pied_Fle ) ;; (setq xMatri (strcat PrefixIncrement (itoa ValIncrement))) (SetXdataForApplication (entlast) "Matri" (list (cons 1000 xMatri)) ) (setq xSurf (rtos (getpropertyvalue (entlast) "Area") 2 1)) (SetXdataForApplication (entlast) "Surf" (list (cons 1000 xSurf)) ) (initget "Altitude sansProfondeur sansHauteur sansLimite") (setq Option3 (getkword (strcat "\nType de fraction [Altitude/sansProfondeur/sansHauteur/sansLimite] <Altitude> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option3 "Altitude") (setq Opt3 "Altitude")) ((= Option3 "sansProfondeur") (setq Opt3 "sans profondeur") ) ((= Option3 "sansHauteur") (setq Opt3 "sans hauteur")) ((= Option3 "sansLimite") (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute "----") (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) (setq Opt3 "sans limitation en\\Pprofondeur et en hauteur") ) (T (setq Opt3 "Altitude")) ) ;_ Fin de cond (setq AltiB (vlax-ldata-get "DenisH" "AltiB" "XXXX.XX")) (if (or (= AltiB nil) (= AltiB "")) (setq AltiB "XXXX.XX") ) ;_ Fin de if (setq AltiH (vlax-ldata-get "DenisH" "AltiH" "XXXX.XX")) (if (or (= AltiH nil) (= AltiH "")) (setq AltiH "XXXX.XX") ) ;_ Fin de if (cond ((= Opt3 "Altitude") (progn (setq NouvAltiB (getstring (strcat "\nSpécifiez l'altitude basse <" AltiB "> : " ) ) ) (if (or (= NouvAltiB nil) (= NouvAltiB "")) (progn (setq Opt3 (strcat AltiB "m"))) (progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2)) (vlax-ldata-put "DenisH" "AltiB" NouvAltiB) (setq Opt3 (strcat NouvAltiB "m")) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse AltiB) (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) ) (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : " ) ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat Opt3 " et " AltiH "m"))) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 (strcat Opt3 " et " NouvAltiH "m")) ) ;_ Fin de progn ) ;_ Fin de if (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ((= Opt3 "sans profondeur") (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : ") ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat "sans limitation\\Pen profondeur et " AltiH "m" ) ) ) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 (strcat "sans limitation\\Pen profondeur et " NouvAltiH "m" ) ) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ((= Opt3 "sans hauteur") (progn (setq NouvAltiB (getstring (strcat "\nSpécifiez l'altitude basse <" AltiB "> : " ) ) ) (if (or (= NouvAltiB nil) (= NouvAltiB "")) (progn (setq Opt3 (strcat AltiB "m et sans\\Plimitation en hauteur") ) ) (progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2)) (vlax-ldata-put "DenisH" "AltiB" NouvAltiB) (setq Opt3 (strcat NouvAltiB "m et sans\\Plimitation en hauteur" ) ) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse AltiB) (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute "----") (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ) ;_ Fin de cond (setq MText (strcat "\\H0.75\\o" PrefixIncrement (itoa ValIncrement) "\\o\\P\\H0.35S = " xSurf "m²\\PNGF : " Opt3 ) ) (setq Pt_Deb_Fle (getpoint "\nSélectionnez le point d'insertion du texte :" ) ) ;_ Fin de setq (command "_.-MTEXT" Pt_Deb_Fle "J" "MC" "H" 1.0 Pt_Deb_Fle MText "") (vlax-ldata-put "DenisH" "ValIncrement" (+ ValIncrement 1)) (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement")) ) ;_ Fin de defun ;;; Active le d?but de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq old_cmdecho (getvar "cmdecho") old_osmode (getvar "osmode") old_boundary (getvar "HPISLANDDETECTIONMODE") ) ;_ Fin de setq (setvar "cmdecho" 0) (setvar "HPISLANDDETECTIONMODE" 0) ;;; (if (not (tblsearch "layer" "MARTY-SURFACES_FRACTIONS")) (command "-calque" "e" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "" ) ;_ Fin de command ;;; (command "-calque" "ch" "MARTY-SURFACES_FRACTIONS" "") ;;; ) ;_ Fin de if (setq PrefixIncrement (vlax-ldata-get "DenisH" "PrefixIncrement" "1a") ) (if (= PrefixIncrement nil) (vlax-ldata-put "DenisH" "PrefixIncrement" "1a") ) ;_ Fin de if (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) (if (or (= ValIncrement "") (= ValIncrement nil)) (progn (vlax-ldata-put "DenisH" "ValIncrement" 1) (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement")) ) ;_ Fin de progn ) ;_ Fin de if ;;; (if (not (tblsearch "style" "Surface")) ;;; (command "-style" "Surface" "arial.ttf" "" "" "" "" "" "") ;;; ) ;_ Fin de if ;;; (command "textstyle" "Surface") (while (/= (type Option1) 'LIST) (initget "Texte Nombre Contour Polyligne") (setq Option1 (getkword (strcat "\nOptions [Texte/Nombre/Contour/Polyligne] <" PrefixIncrement (itoa ValIncrement) "> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option1 "Texte") (setq PrefixIncrement (getstring (strcat "\nSaisissez le numéro du volume et l'indice du plan <" PrefixIncrement "> : " ) ) ;_ Fin de getstring ) ;_ Fin de setq (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement) ) ((= Option1 "Nombre") (setq ValIncrement (getint "\nSaisissez le numéro de la fraction : " ) ) ;_ Fin de getstring (if (or (= ValIncrement "") (= ValIncrement nil)) (vlax-ldata-put "DenisH" "ValIncrement" 1) (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ;_ Fin de if ) ((= Option1 "Contour") (while (princ "\nChoississez un point interne :") (command "-contour" "O" "O" "P" "" pause "") (EcritText) ) ) ((= Option1 "Polyligne") (while (princ "\nSaisissez les points du contour :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ;_ Fin de while ) ;_ Fin de command (EcritText) ;_ Fin de command ) ;_ Fin de while ) (T (while (princ "\nChoississez un point interne :") (command "-contour" "O" "O" "P" "" pause "") (EcritText) ) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de while (setvar "osmode" old_osmode) (setvar "cmdecho" old_cmdecho) (setvar "HPISLANDDETECTIONMODE" old_boundary) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun ) Merci à DenisHen encore une fois !
-
Bon ba j'ai trouvé j'avais cas lire :D
-
Du coup j'ai réussi à ajouter les altitudes hautes et basses pour chaque type d'altitude (si besoin). Cependant, j'ai le bon texte quand je laisse la valeur par défaut mais pas quand je note une nouvelle valeur. Je n'arrive pas à gérer les deux cas. Voici mon bout de code : ((= Opt3 "sans profondeur") (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : " ) ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat "sans limitation\\Pen profondeur et " AltiH "m") ) ) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 NouvAltiH) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn
-
Mince ma condition est pas bonne :( Je continue de tester :)
-
Tu sais comment faire pour avoir des options d'altitudes hautes et basses ? J'ai essayé déjà de rajouter l'option sur les autres choix mais sans succès : (cond ((= Opt3 "Altitude") (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude basse <" Alti "> : "))) (if (or (= NouvAlti nil) (= NouvAlti "")) (progn (setq Opt3 (strcat Opt3 ":" Alti))) (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2)) (vlax-ldata-put "DenisH" "Alti" NouvAlti) (setq Opt3 NouvAlti) ) ;_ Fin de progn ) ;_ Fin de if ));_ Fin de progn ((= Opt3 "sansProfondeur") (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude haute <" Alti "> : "))) (if (or (= NouvAlti nil) (= NouvAlti "")) (progn (setq Opt3 (strcat Opt3 ":" Alti))) (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2)) (vlax-ldata-put "DenisH" "Alti" NouvAlti) (setq Opt3 NouvAlti) ) ;_ Fin de progn ) ;_ Fin de if ));_ Fin de progn ) ;_ Fin de cond
-
Personnellement j'ai du modifier le nom appelé pour que ça fonctionne :) Alors le premier Lisp : - on indique le préfixe de l'incrementation. - on indique le numéro d'incrementation. - on choisit si on veut un contour par détection ou en le définissant point par point. - une fois le contour ok, on indique si c'est une polyligne sans altitude / avec altitudes. - on indique l'altitude si besoin. - on indique la place du texte. - cela insert un mtext avec le numéro indiqué au début, la surface et l'altitude (ou sans). Par exemple, au final j'ai un texte : 1a1 / S = 123.00m² / NGF : 102.23 - 104.56 Celui d'après ça sera automatiquement : 1a2 / S = 124.0/m² / NGF : sans limite La deuxième partie du Lisp permet un export automatique des textes créé au format csv avec la surface. Le deuxième lisp permet de sélectionner un mtext, cela va créé une polyligne entre les deux points du bas puis lancer la création d'une flèche. Voilà voilà, merci encore à Denis pour toute son aide ! C'est plus que les fignolage maintenant.
-
Merci ça va être utile pour trouver l'erreur ! J'ai remis mon profil et mes anciens lisp, je n'ai pas l'erreur pour le moment du coup je ne sais pas de quoi ça venait :o
-
Au top, du coup j'ai un bouton pour les contours + textes et un bouton pour souligné + flèche que je peux utiliser sur n'importe quel mtext. Alors j'ai essayé de modifier la création du texte sans succès : - est-il possible d'ajouter une altitude haute et une altitude basse pour le choix altitude ? (avec toujours la même contrainte : XXX.XX au début puis la dernière valeur) - est-il possible d'ajouter une altitude pour sans profondeur et sans hauteur ? Bon après l'altitude basse de altitude correspond à l'altitude basse de sans profondeur et pareil pour altitude haute avec sans hauteur.
-
Est-il possible d'inverser le sens de saisie de la flèche ? Commencer par le point prêt du texte et finir par la pointe de la flèche ? J'ai essayé d'inverser la commande ou les variables sans succès.
-
Alors alors... J'ai réinitialiser autocad, du coup je n'ai plus les vieux lisp. Maintenant cela fonctionne bien. Du coup je dois charger les anciens lisp un par un avec appload pour voir lequel fait bug le tout ?
-
Non plus, dès que j'ajoutes une nouvelle ligne je retrouve cette erreur :(
-
ALors si je test : (defun c:EncadreMText () ;;;D?fini les quatre coins du MText de (gile) (princ "\nDéfini les quatre coins du MText de (gile2)") (setq elst (car (entsel "\nSelectionner le texte :"))) (if (= "MTEXT" (cdr (assoc 0 (entget (entlast))))) (setq nor "1") ) ) (princ "...Fin") Cela fonctionne, du coup j'ai une première erreur sur (cdr (assoc 210 elst) on dirait.
-
Ca fonctionne bien pour selectionner le texte mais du coup je reviens à l'erreur clayer de tout à l'heure :unsure:
-
Merci beaucoup !! Je vais pouvoir m'amuser pour rajouter une seconde altitude, l'export de l'altitude etc... Bon maintenant le point bloquant, la fonction pour souligner et faire la flèche. La fonction pour faire la flèche fonctionne bien, du coup je dois avoir un problème pour trouver les 4 points du mtext. J'ai essayé de lancer la commande avec un getstring pour pouvoir sélectionner le texte auquel je voulais ajouter la flèche mais cela ne fonctionne pas. J'imagine c'est parce que la fonction de gile attend la list DXF du mtext. J'ai essayé : (setq MTxt (getstring "\nSelectionner le texte :")) (setq elst (entget (MTxt)))
-
Ba voila quand j'explique mieu ça fonctionne niquel :) C'est possible de mettre deux décimales même quand l'utilsateur n'a rien mis ? Genre 192 devient 192.00 ou 192.1 devient 192.10 ?
-
Pardon j'ai mal expliqué. La première fois XXX.XX par défaut, ensuite la valeur rentrée précédemment (qui peut-être XXX.XX si on a rien rentré)
-
Ok alors pour le texte dans un premier temps, cela fonctionne niquel, juste quand la première fois je défini une altitude et que la deuxième fois je fais valide car elle apparait bien, le texte revient à la valeur par défaut "XXX.XX". J'imagine que ça a un rapport avec l'enregistrement de la variable.
-
Non cela ne change rien. Pour plus de visibilité on devrait sûrement séparer la création du contour et de la flèche du reste comme ça ça reduira peut-être le périmètre de l'erreur. Concernant les lisp chargés au démarrage, on en a des très vieilles qui datent du début d'autocad, je n'ai pas assez de connaissances pour pouvoir les vérifiers.
-
J'ai mis la fonction encardtext dans un autre lisp, j'ai que l'erreur OptionIns.
-
J'ai l'erreur : Commande: ENCADREMTEXT Défini les quatre coins du MText de (gile) OptionIns*Incorrect* paramètre de la variable AutoCAD rejeté: "clayer" nil
-
Merci pour cette nouvelle version, malheureusement cela bug dans les deux cas :( Commande: HYDRO8_POLY Développé par Denis H. (v:2.3) Options des textes [Texte/Nombre/Contour/Polyligne] <VarB0> : Choisir le contour : Début calcul flèche Pointe de la flèche : Pied de la flèche (insertion du texte : Choix des textes [Altitude/sansProfondeur/sansHauteur/sansLimite] <Altitude> : l Calcul du gisement de la flèche selon son sensparamètre de la variable AutoCAD rejeté: "clayer" nil Dans le premier cas. Commande: ENCADREMTEXT Défini les quatre coins du MText de (gile)paramètre de la variable AutoCAD rejeté: "clayer" nil Dans le deuxième cas.
-
Merci pour ton travail surtout un samedi ! Du coup j'ai toujours le même problème :/ Cependant peut être qu'en enlevant la partie cadre + flèche cela fonctionnera mieux? Il faudrait que je mette ça dans une autre fonction.
