lili2006 Posté(e) le 5 novembre 2015 Posté(e) le 5 novembre 2015 Bonjour à toutes et tous, Pour indiquer l'aire avec le formatage souhaitée d'une parcelle, cette expression lisp fonctionne parfaitement => Je souhaiterai maintenant uniquement écrire "N° Tranchée = Ma donnée d'objet" Est ce que cette syntaxe est correcte ? (STRCAT "N° TRANCHEE = " (RTOS DONNEES D’OBJET]) Je ne peux pas tester actuellement,.. Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 5 novembre 2015 Posté(e) le 5 novembre 2015 Hello Juste un copier / coller sans reflechir & sans MAP : *** Contenu du champ numerique PNT_ALTITIDE de la Table TABLE_PNT avec 2 decimales (si necessaire) ***(STRCAT (RTOS :PNT_ALTITUDE@TABLE_PNT 2 0 ) ) *** Aire/Surface des objets clos (Polyligne close, Cercle, etc) avec ZERO decimale et le suffixe m²(STRCAT (RTOS .AREA 2 0) "m²" ) SVP tu nous diras !? Bye, lecrabe Autodesk Expert Elite Team
fabcad Posté(e) le 6 novembre 2015 Posté(e) le 6 novembre 2015 Bonjour, J'ai créé cette routine pour créer sur des polylignes (closes ou non) des Mtextes issues de la sélection de valeurs de champs de Tables de Données d'Objets. il faudrait ajouter ton préfixe "N° TRANCHEE = " dans la sous-fonction Creation_Etiquette. C'est plus facile de créer des Mtextes que de créer des Annotations MAP (Usine à gaz pour créer des étiquetages simples). Il serait tellement plus simple de convertir en objets textes ou Mtextes l'étiquetage sur des objets AutoCAD+Données d'Objets depuis le Volet Taches. Fabcad Le Rennais MétropolitainEcrire_Etiquettes-OD-avec-choix-v3.lsp
lili2006 Posté(e) le 6 novembre 2015 Auteur Posté(e) le 6 novembre 2015 Bonsoir à toutes et tous, Salut Patrice, (STRCAT (RTOS .AREA 2 0) "m²" ) Oui, ça marche, c'est ce que j'ai mis sur l'image ci dessus,...C'est pour ça qu'en m'inspirant de cette écriture, il me semblait qu'il était possible d'écrire cette annotation "composées" de texte et de OD (STRCAT (RTOS :PNT_ALTITUDE@TABLE_PNT 2 0 ) ) C'est un peu le même pricipe que pour l'aire. Ma demande semble plus simple en écriture mais je ne sais pas si la syntaxe est ok, je vais tester dés que possible, ça donnerait donc ? => (STRCAT "N° TRANCHEE = " (RTOS DONNEES D’OBJET]) Salut Fabcad le Rennais, Merci pour ta routine, je teste dés que possible,... Il serait tellement plus simple de convertir en objets textes ou Mtextes l'étiquetage sur des objets AutoCAD+Données d'Objets depuis le Volet Taches. En effet !:( Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 7 novembre 2015 Auteur Posté(e) le 7 novembre 2015 Bonjour à toutes et tous, J'ai testé ce matin, cette expression correspond bien à mon besoin,.. (STRCAT "TR " (RTOS :N@SONDAGE)) Fabcad, il faudrait ajouter ton préfixe "N° TRANCHEE = " dans la sous-fonction Creation_Etiquette. Heu, j'ai bien vu cette sous fonction dans ton lisp, mais quelles sont les écritures à rajouter ??J'ai testé en l'état ta routine, ce qui donne => Dommage que la BD "Tables & Champs" ne puisse pas s'adapter au contenu => Je fais bien les manips, pourtant, aucun texte n'est créé !!Ecrire_EtiquettesCommande: Ecrire_EtiquettesPointez sur l'objet Modèle : Données d'objets présentes sur l'objet modèle !---COPYRIGHT 21/06/2013 Par Fabrice DEMIEL---nilCommande:Commande:Commande: *Annuler*Commande:Commande: *Annuler*Commande:ECRIRE_ETIQUETTESPointez sur l'objet Modèle : Données d'objets présentes sur l'objet modèle ! Selectionez les objets a traiter :Sélectionner des objets: 1 trouvé(s)Sélectionner des objets: 1 trouvé(s), 2 au totalSélectionner des objets: 1 trouvé(s), 3 au totalSélectionner des objets: 1 trouvé(s), 4 au totalSélectionner des objets:Table : SONDAGE et Champ : Type_de_sondageTRTable : SONDAGE et Champ : Type_de_sondageTRTable : SONDAGE et Champ : Type_de_sondageTRTable : SONDAGE et Champ : Type_de_sondageTR---COPYRIGHT 21/06/2013 Par Fabrice DEMIEL---nilCommande: Aurais je raté une étape ? Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 7 novembre 2015 Auteur Posté(e) le 7 novembre 2015 Re, J'ai testé sur un nouveau fichier, En effet, ça fonctionne bien et vite !! Juste une remarque, ne peut on pas choisir texte au lieu de Mtext et pouvoir spécifier la hauteur de celui ci au passage? J'ai repris le premier fichier test et je n'arrive toujours à aucun résultat !! Une idée ? Le fichier => Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 8 novembre 2015 Auteur Posté(e) le 8 novembre 2015 Bonjour à toutes et tous, Je pense que c'est parce que les polys sont en 3D que "Ecrire_Étiquette" ne fonctionne pas,... Merci d'avance de la confirmation, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 8 novembre 2015 Auteur Posté(e) le 8 novembre 2015 Re, Je viens de me rendre compte que la taille du texte était variable en fonction de l'état de zoom lors de la sélection, je ne sais pas comment c'est possible mais en tout cas, c'est terrible !! Merci encore Fabcad le Rennais, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
fabcad Posté(e) le 8 novembre 2015 Posté(e) le 8 novembre 2015 Bonsoir, Ravi que ma routine te correspond :-)Juste une remarque, ne peut on pas choisir texte au lieu de Mtext... - Je crée des Mtextes car la routine permet de sélectionner plusieurs valeurs dans la case de dialogue crée par Gilles Chanteau et donc d'écrire plusieurs lignes séparées par un retour chariot. et pouvoir spécifier la hauteur de celui ci au passage ?Je viens de me rendre compte que la taille du texte était variable en fonction de l'état de zoom lors de la sélection,je ne sais pas comment c'est possible mais en tout cas, c'est terrible !! - La valeur est calculée par un pourcentage par rapport à la hauteur de la zone graphique de l'espace objet. En ce qui concerne l'ajout de ta valeur, j'ai des lacunes sur la fonction mapcar, il faudrait un crack du lisp, ce serait cool. Fabcad Le Rennais Métropolitain
lili2006 Posté(e) le 8 novembre 2015 Auteur Posté(e) le 8 novembre 2015 Re, Salut Fabcad,- Je crée des Mtextes car la routine permet de sélectionner plusieurs valeurs dans la case de dialogue crée par Gilles Chanteau et donc d'écrire plusieurs lignes séparées par un retour chariot. Vu ! - La valeur est calculée par un pourcentage par rapport à la hauteur de la zone graphique de l'espace objet. Merci pour la confirmation, c'est en regardant un peu ce soir que je m'en suis aperçut,.. en même temps c'était évident mais ne connaissant pas bien la puissance du lisp,... En ce qui concerne l'ajout de ta valeur, j'ai des lacunes sur la fonction mapcar, il faudrait un crack du lisp, ce serait cool. Oui parce que ce serait sans doute adaptable "facilement" à d'autres besoins de préfixe/suffixe.Je viens de tester ta routine sur le fichier de ce post sans aucun soucis, Merci encore pour ton partage (Et vive la Bretagne,) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
bonuscad Posté(e) le 9 novembre 2015 Posté(e) le 9 novembre 2015 Une version un peu similaire pour écrire une OD sur une entité curviligne (elle est encore embryonnaire). (vl-load-com) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun ListBox (title msg keylab flag / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "ListBox:dialog{label=\"" title "\";") file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ((= 0 flag) "spacer;:popup_list{key=\"lst\";") ((= 1 flag) "spacer;:list_box{key=\"lst\";") (T "spacer;:list_box{key=\"lst\";multiple_select=true;") ) file ) (write-line "}spacer;ok_cancel;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "ListBox" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list (mapcar 'cdr keylab)) (end_list) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice)) ) (setq choice (reverse choice)) ) (setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab))) ) ) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) (defun c:OD2Label_Side ( / js obj ename htx AcDoc Space nw_style lst_tabl_def inc_key lst_def desc_od desc_tbl str msg pt deriv rtx nw_obj dxf_ent tmp) (princ "\nSélectionnez une polyligne.") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "*POLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un objet valable pour cette fonction!") ) (setq obj (ssname js 0) ename (vlax-ename->vla-object obj) ) (cond ((ade_odgettables obj) (initget 6) (setq htx (getdist (getvar "VIEWCTR") (strcat "\nSpécifiez la hauteur du texte <" (rtos (getvar "TEXTSIZE")) ">: "))) (if htx (setvar "TEXTSIZE" htx)) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (cond ((null (tblsearch "LAYER" "Label")) (vlax-put (vla-add (vla-get-layers AcDoc) "Label") 'color 96) ) ) (cond ((null (tblsearch "STYLE" "Romand-Label")) (setq nw_style (vla-add (vla-get-textstyles AcDoc) "Romand-Label")) (mapcar '(lambda (pr val) (vlax-put nw_style pr val) ) (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag) (list "romand.shx" 0.0 (/ (* 15.0 pi) 180) 1.0 0.0) ) ) ) (setq lst_tabl_def (mapcar 'ade_odtabledefn (ade_odgettables obj)) inc_key 0) (foreach n lst_tabl_def (foreach el n (if (listp (cdr el)) (foreach sel (cdr el) (foreach msel sel (if (eq (car msel) "ColName") (setq lst_def (cons (cons (strcat "key" (itoa (setq inc_key (1+ inc_key)))) (cdr msel)) lst_def)) ) ) ) ) ) ) (if (not desc_od) (setq desc_od (cdr (assoc (listbox "Donnée d'objet" "Choisir une données d'objet" lst_def 1) lst_def)) desc_tbl nil) ) (foreach n lst_tabl_def (if (assoc (cons "ColName" desc_od) (cdaddr n)) (setq desc_tbl (cdar n)) ) ) (cond (desc_tbl (setq str (ade_odgetfield obj desc_tbl desc_od 0)) (setq nw_obj (vla-addMtext Space (vlax-3d-point (setq pt (polar '(0.0 0.0 0.0) (* pi 0.5) (getvar "TEXTSIZE")))) (setq rtx 0.0) (cond ((eq (type str) 'INT) (itoa str)) ((eq (type str) 'REAL) (rtos str 2 2)) ((eq (type str) 'STR) str) (T "") ) ) ) (mapcar '(lambda (pr val) (vlax-put nw_obj pr val) ) (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation) (list 5 (getvar "TEXTSIZE") 5 pt "Romand-Label" "Label" rtx) ) (setq dxf_ent (entget (entlast))) (while (or (= 5 (car (setq tmp (grread t 5 1)))) (/= (car tmp) 25) (= (car tmp) 3)) (cond ((= 5 (car tmp)) (setq pt (vlax-curve-getClosestPointTo ename (trans (cadr tmp) 1 0)) deriv (vlax-curve-getFirstDeriv ename (vlax-curve-GetParamAtPoint ename pt)) rtx (- (atan (cadr deriv) (car deriv)) (angle '(0 0 0) (getvar "UCSXDIR"))) ) (if (or (> rtx (* pi 0.5)) (< rtx (- (* pi 0.5)))) (setq rtx (+ rtx pi))) (entmod (subst (cons 50 rtx) (assoc 50 dxf_ent) (subst (cons 10 (polar pt (+ rtx (* pi 0.5)) (getvar "TEXTSIZE"))) (assoc 10 dxf_ent) dxf_ent) ) ) (entupd (cdar dxf_ent)) ) ((= 3 (car tmp)) (setq nw_obj (vla-addMtext Space (vlax-3d-point (setq pt (polar '(0.0 0.0 0.0) (* pi 0.5) (getvar "TEXTSIZE")))) (setq rtx 0.0) (cond ((eq (type str) 'INT) (itoa str)) ((eq (type str) 'REAL) (rtos str 2 2)) ((eq (type str) 'STR) str) (T "") ) ) ) (mapcar '(lambda (pr val) (vlax-put nw_obj pr val) ) (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation) (list 5 (getvar "TEXTSIZE") 5 pt "Romand-Label" "Label" rtx) ) (setq dxf_ent (entget (entlast))) ) (T (princ "\nArrêt anormal de la commande ")) ) ) ) ) (entdel (entlast)) ) (T (princ "\nPas de données d'objet attachées")) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lili2006 Posté(e) le 9 novembre 2015 Auteur Posté(e) le 9 novembre 2015 Bonsoir à toutes et tous, Salut Bruno, (elle est encore embryonnaire). ça promet,... Pas mal cette prise de main sur la position du/des texte(s),... J'ai rien raté, hein, on ne peut traiter qu'une entité à la fois ? Pourtant la question est "sélection des objets", tu as surement prévu une sélection par capture par la suite, je suppose,... A ce propos, j'ai trouvé une anomalie ce soir dans le fonctionnement de AutoCAD, est bien que vérifiant les variables "usuelles", j'ai toujours ce problème : Lorsque je lance la sélection similaire, j'ai à nouveau besoin de sélectionner des entités (ce qui n'as donc absolument aucun intérêt !!) et la commande "p" ne fonctionne pas pour le rappel du filtrage précédent,.. Peut être le même pb lors de la sélection des objets de ta routine Bruno ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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