Invité tichou Posté(e) le 4 mai 2011 Posté(e) le 4 mai 2011 Désolé mais mon précédent fil semble ne pas fonctionner : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=32818 Les réponses ne sont pas visibles... Merci de poster vos réponses ici. Cordialement.
jarod34 Posté(e) le 4 mai 2011 Posté(e) le 4 mai 2011 Bonjour, Voilà la réponse que j'avais donné pour ton problème d'afficher IDxxx avec une incrémentation. A voir si ça conviens. (vl-load-com) (defun c:surf (/ js obj AcDoc Space nw_style pt htx rtx unit_key unit_draw dxf_cod n ename ll ur nw_obj lremov ) (princ "\nSélectionnez un objet curviligne.") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "*POLYLINE,ARC,CIRCLE,ELLIPSE,HATCH") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0 ) ) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model" ) ) '(-4 . " '(-4 . "&") '(70 . 120) '(-4 . "NOT>") ) ) ) ) (princ "\nCe n'est pas un objet curviligne valable pour cette fonction!" ) ) (initget 6) (setq htx (getdist (getvar "VIEWCTR") (strcat "\nSpécifiez la hauteur du champ <" (rtos (getvar "TEXTSIZE")) ">: " ) ) ) (if htx (setvar "TEXTSIZE" htx) ) (if (not (setq rtx (getorient (getvar "VIEWCTR") "\nSpécifiez l'orientation du champ <0.0>: " ) ) ) (setq rtx 0.0) ) (if (= cod nil) (setq codr 1) (setq codr cod) ) (if (not (setq cod (getreal (strcat "\nSpécifiez le numéro de l'ID <" (rtos codr 2 0) ">: " ) ) ) ) (setq cod codr) ) (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" "Id-Surfaces")) (vlax-put (vla-add (vla-get-layers AcDoc) "Id-Surfaces") 'color 96 ) ) ) (cond ((null (tblsearch "STYLE" "Romand-Field")) (setq nw_style (vla-add (vla-get-textstyles AcDoc) "Romand-Field")) (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) ) ) ) (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz")) ) (progn (initget "KM ME CM MM") (if (not (setq unit_key (getkword "\nDessin réalisé en [KM/ME/CM/MM] : " ) ) ) (setq unit_key "ME") ) (cond ((eq unit_key "KM") (setq unit_draw 1000000) ) ((eq unit_key "ME") (setq unit_draw 1000 unit_key "M" ) ) ((eq unit_key "CM") (setq unit_draw 10) ) ((eq unit_key "MM") (setq unit_draw 1) ) ) (setvar "USERS5" (strcat "qz" (itoa unit_draw))) ) (progn (setq unit_draw (atoi (substr (getvar "USERS5") 3))) (cond ((eq unit_draw 1000000) (setq unit_key "KM") ) ((eq unit_draw 1000) (setq unit_key "M") ) ((eq unit_draw 10) (setq unit_key "CM") ) ((eq unit_draw 1) (setq unit_key "MM") ) ) ) ) (initget "Unique Multiple _Single Multiple") (if (eq (getkword "\nSélection filtrée [unique/Multiple]: ") "Single" ) (setq n -1) (setq dxf_cod (entget (ssname js 0)) js (ssget "_X" (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov)) ) ) (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) ) n -1 ) ) (repeat (sslength js) (setq obj (ssname js (setq n (1+ n))) ename (vlax-ename->vla-object obj) ) (vla-GetBoundingBox ename 'll 'ur) (if (< cod 10) (setq compcod "00") (if (and (< cod 100) (>= cod 10)) (setq compcod "0") (setq compcod "") ) ) (setq ll (safearray-value ll) ur (safearray-value ur) pt (mapcar '* (mapcar '+ ll ur) '(0.5 0.5 0.5)) nw_obj (vla-addMtext Space (vlax-3d-point pt) 0.0 (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa (vla-get-ObjectID ename)) ">%).Area \\f \"%lu2%pr2%ps[iD" (strcat compcod (rtos cod 2 0)) "=," (strcase unit_key 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-Field" "Id-Surfaces" rtx ) ) ) (setq cod (+ cod 1)) (prin1) )
Invité tichou Posté(e) le 5 mai 2011 Posté(e) le 5 mai 2011 Bonjour et merci pour ta réponse.Malheureusement l'identifiant n'est pas incrémenté.Lorsque je choisis l'option "Multiple", toutes mes surfaces du calque sont traitées, mais l'identifiant ID001 et inscrit partout, au lieu d'avoir un identifiant unique par surface. Par ailleurs, aurais tu une idée pour mon deuxième problème, à savoir l'export de tout ça sur excel ? Merci par avance.
jarod34 Posté(e) le 6 mai 2011 Posté(e) le 6 mai 2011 Salut, Je viens de voir que Bonuscad viens de résoudre tes deux problématiques sur ton premier post! Jette y un coup d'oeil ;)!
Invité tichou Posté(e) le 9 mai 2011 Posté(e) le 9 mai 2011 Bonjour, Un énorme merci à BonusCAD qui a su répondre parfaitement à me demande.Vraiment merci. A bientôt.
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