DenisHen Posté(e) le 19 octobre 2015 Partager Posté(e) le 19 octobre 2015 Bonjour à tous, Voilà, pour une fois que je peux partager une routine de ma création... Voici un petit LiSP qui dessine une flèche avec les coordonnées XY du point. Tout se fait dans le calque courant et dans le style de texte courant et l'oriantation du texte multiligne se fait parallèle à la direction du réticule... Voici mon code, toutes remarques seront les bienvenues :(defun c:DHXY (/) (princ "\nDéveloppé par Denis H.") (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") old_aunits (getvar "aunits") VarSnapAng (getvar "snapang") ) ;_ Fin de setq (setvar "osmode" 1) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setvar "aunits" 0) (initget 1) (setq pt_ins (getpoint "\nPointe de la flèche : ")) (setq X (rtos (car pt_ins) 2 2)) (setq Y (rtos (cadr pt_ins) 2 2)) (initget 1) (setq pt_ins_Txt (getpoint pt_ins "\nPied de la flèche : ")) (setq p3 (polar pt_ins (angle pt_ins pt_ins_Txt) 1)) (command "_.pline" "_non" pt_ins "_w" 0 0.5 "_non" p3 "_w" 0 0 "_non" pt_ins_Txt "") ;_ Fin de command (setq angl_Txt (/ (* VarSnapAng 180) pi)) (setq angl_Txt (- angl_Txt 90)) (setq Text (strcat "X=" X "\\PY=" Y)) (initget 1 "BG HG BD HD") ;_ Fin de initget (setq OptionIns (getkword "Entrez le point d'insertion du texte multiligne [bG/HG/BD/HD] :" ) ;_ Fin de getkword ) ;_ Fin de setq ;;InsTxt (cond ((= OptionIns "BG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "BD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ) ;_ Fin de cond (setq Text (strcat "X=" X "\\PY=" Y)) ;_ Fin de setq (princ "\nEtiquette Ok") ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) (setvar "aunits" old_aunits) (princ) ) ;_ Fin de defun Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 19 octobre 2015 Auteur Partager Posté(e) le 19 octobre 2015 GRRRR ! ! ! Je viens d'utiliser ma routine sur deux plans, tout deux avec une rotation de la vue mais toujours en SCU général. Et bien si mon SNAPANG=46.6294, ça ne fonctionne pas, il faut que sa valeur soit 346.6294... Par contre, avec ça, je ne sais pas trop quoi faire... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pierrevigneux Posté(e) le 19 octobre 2015 Partager Posté(e) le 19 octobre 2015 Merci Denis J,ai fais une copie et j'ai obtenue comme réponse. Pointe de la flèche :Pied de la flèche : ; error: bad argument type: numberp: nil Acadnadien Lien vers le commentaire Partager sur d’autres sites More sharing options...
lovecraft Posté(e) le 19 octobre 2015 Partager Posté(e) le 19 octobre 2015 hello, Voici à peu près la même chose avec un bloc dynamique https://drive.google.com/file/d/0B_85Ome3N80dQTJiTlF5LUdrV0U/view?usp=sharing Cordialement, http://www.youtube.com/user/CADMINATOR?feature=mhee Lien vers le commentaire Partager sur d’autres sites More sharing options...
La Lozère Posté(e) le 19 octobre 2015 Partager Posté(e) le 19 octobre 2015 Hello,J'avais également fait un truc dans le genre de ce que propose lovecraft.Là, il n'existe que pour le XY. J'ai bien tenter de faire un truc pour X,Y et Z. Le truc, c'est que le paramètre d'étirement ne marche pas en 3D. C'est un fonctionnement normal? J'ai l'impression que le parametre d'étirement est parfait pour faire des choses en 2D, mais en 3D, ça ne marche pas.Sauf à faire comme le bloc de lovecraft, c.à.d. en déplaçant le bloc en Z. A plus.bloc coordonnées.zip www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 19 octobre 2015 Auteur Partager Posté(e) le 19 octobre 2015 Bonsoir à tous, pierrevigneux : Et si ton style de texte comporte déja, dans ses paramètres, une hauteur ? lovecraft : ton lien est périmé... Et j'aimerais bien l'avoir... La Lozère : j'ai déjà eu ce problère... Il faut un accrochage 3D et ne plus rien bouger... Faut être précis dès le début... C'est vrai, c'est super chi*nt... Mais je vais bosser dans les jours prochains sur une version plus "paramétrable", taille du texte, de la flèche... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
lovecraft Posté(e) le 19 octobre 2015 Partager Posté(e) le 19 octobre 2015 Bonsoir à tous, pierrevigneux : Et si ton style de texte comporte déja, dans ses paramètres, une hauteur ? lovecraft : ton lien est périmé... Et j'aimerais bien l'avoir... La Lozère : j'ai déjà eu ce problère... Il faut un accrochage 3D et ne plus rien bouger... Faut être précis dès le début... C'est vrai, c'est super chi*nt... Mais je vais bosser dans les jours prochains sur une version plus "paramétrable", taille du texte, de la flèche... Denis... Le voici en pièce jointe (par contre mon lien fonctionne toujours. Cordialement,POINT_DYN.zip http://www.youtube.com/user/CADMINATOR?feature=mhee Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 20 octobre 2015 Auteur Partager Posté(e) le 20 octobre 2015 Bonjour à tous, Merci lovecraft, mais je ne me suis pas encore familiarisé avec les blocs dynamiques... J'ai amélioré ma routine pour la rendre plus "paramétrable"... Longueur de la flèche, largeur, épaisseur de sa queue et hauteur du texte... Voici le nouveau code :;;;Trace une flèche puis écrit les X, Y et Z (s'il y en a un) (defun c:DHXY (/) (princ "\nDéveloppé par Denis H.") (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") old_aunits (getvar "aunits") VarSnapAng (getvar "snapang") ) ;_ Fin de setq (setvar "osmode" 1) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setvar "aunits" 0) (setq Long (vlax-ldata-get "DenisH" "FlXYLong" 0.75)) (setq Larg (vlax-ldata-get "DenisH" "FlXYLarg" 0.4)) (setq Epais (vlax-ldata-get "DenisH" "FlXYEpais" 0.01)) (setq Haut (vlax-ldata-get "DenisH" "FlXYHaut" 0.5)) (prompt (strcat "\tLongueur : " (rtos Long 2 3) ", lArgeur : " (rtos Larg 2 3) ", Epaisseur : " (rtos Epais 2 3) ", Hauteur : " (rtos Haut 2 3) ) ;_ Fin de strcat ) ;_ Fin de prompt (while (/= (type pt_ins) 'LIST) (initget 1 "Longueur lArgeur Epaisseur Hauteur") (setq pt_ins (getpoint "\nPointe de la petite flèche ou [Longueur/lArgeur/Epaisseur/Hauteur] <Longueur> : " ) ;_ Fin de getpoint ) ;_ Fin de setq (cond ((= pt_ins "Longueur") (initget 7) (setq Long (getdist "\nLongueur de la flèche : ")) ) ((= pt_ins "lArgeur") (initget 7) (setq Larg (getdist "\nlArgeur de la flèche : ")) ) ((= pt_ins "Epaisseur") (initget 7) (setq Epais (getdist "\nEpaisseur de la queue de la flèche : ")) ) ((= pt_ins "Hauteur") (initget 7) (setq Haut (getdist "\nHauteur du texte : ")) ) ) ;_ Fin de cond ) ;_ Fin de while (initget 1) (vlax-ldata-put "DenisH" "FlXYLong" Long) (vlax-ldata-put "DenisH" "FlXYLarg" Larg) (vlax-ldata-put "DenisH" "FlXYEpais" Epais) (vlax-ldata-put "DenisH" "FlXYHaut" Haut) (setq pt_ins (getpoint "\nPointe de la flèche : ")) (setq X (rtos (car pt_ins) 2 2)) (setq Y (rtos (cadr pt_ins) 2 2)) (setq Z (rtos (caddr pt_ins) 2 2)) (initget 1) (setq pt_ins_Txt (getpoint pt_ins "\nPied de la flèche : ")) (setq p3 (polar pt_ins (angle pt_ins pt_ins_Txt) Long)) (command "_.pline" "_non" pt_ins "_w" 0 Larg "_non" p3 "_w" 0 0 "_non" pt_ins_Txt "" ) ;_ Fin de command ;_ Fin de command (setq angl_Txt (/ (* VarSnapAng 180) pi)) (setq angl_Txt (- angl_Txt 90)) (if (= Z "0.00") (setq Text (strcat "X=" X "\\PY=" Y)) (setq Text (strcat "X=" X "\\PY=" Y "\\PZ=" Z)) ) ;_ Fin de if (initget 1 "BG HG BD HD") ;_ Fin de initget (setq OptionIns (getkword "Entrez le point d'insertion du texte multiligne [bG/HG/BD/HD] :" ) ;_ Fin de getkword ) ;_ Fin de setq ;;InsTxt (cond ((= OptionIns "BG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BG" "H" Haut pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "BD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ) ;_ Fin de cond (setq Text (strcat "X=" X "\\PY=" Y)) ;_ Fin de setq (princ "\nEtiquette Ok") ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) (setvar "aunits" old_aunits) (princ) ) ;_ Fin de defun Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant