ahmednassim Posté(e) le 29 mars 2007 Posté(e) le 29 mars 2007 ma question est comment transformer des cotes Z ecrites sous forme de text en points 3d ? Merci
Bred Posté(e) le 29 mars 2007 Posté(e) le 29 mars 2007 (Salut)... ma réponse est - Tu peux changer les propriétés du point en y entrant les coordonnées correspondant dans la ligne Z.ou- Tu peux faire un déplacer en donnant despoints de coordonnées correspondant sur les Zoi- en cas de gros volume, tu as la prog.... mais affine un peu ta question (pour moi)....transformer des cotes Z ecrites sous forme de text en points 3dce que tu appel "des cotes Z" sont des cotes de niveaux ? (un point avec un texte (Bloc topo), un texte entouré (archi)...) [Edité le 29/3/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ahmednassim Posté(e) le 29 mars 2007 Auteur Posté(e) le 29 mars 2007 merci comme même mais c'est un trés grand nombre de points et ils sont bien posés en x,y mais il ne sont pas rataché en z (z est l'altitude) ce sont des blocs topo
Bred Posté(e) le 29 mars 2007 Posté(e) le 29 mars 2007 Donne moi le nom du bloc (si c'est toujours le même nom).Je suppose que ele texte est en fait un attribut ? Je te fairais un prog plus ciblé.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 29 mars 2007 Posté(e) le 29 mars 2007 Tiens, fait rapidement, tente ça (pas tester en profondeur...) (defun c:ptZ (/ Blc Nom-blc COORD-P NVLLE-COORD SEL VAL-ATT X) (while (not (and (setq Blc (car (entsel "\n Choix du type de blocs à élevé en Z :"))) (equal (cdr (assoc 0 (entget (entnext Blc)))) "ATTRIB")))) (setq Nom-blc (cdr (assoc 2 (entget Blc)))) (setq sel (ssget "_X" (list (cons 2 Nom-blc))) x 0) (repeat (sslength sel) (setq coord-P (cdr (assoc 10 (entget (ssname sel x))))) (setq val-att (atof (cdr (assoc 1 (entget (entnext (ssname sel x))))))) (setq Nvlle-coord (list (car coord-P) (cadr coord-P) val-att)) (entmod (subst (cons 10 Nvlle-coord) (cons 10 coord-P) (entget (entnext (ssname sel x))))) (entmod (subst (cons 10 Nvlle-coord) (cons 10 coord-P) (entget (ssname sel x)))) (setq x (+ 1 x)) ) (princ (strcat "\n" (rtos (sslength sel)) " Blocs traités.")) (princ) ) tiens moi au courant... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ahmednassim Posté(e) le 30 mars 2007 Auteur Posté(e) le 30 mars 2007 ce sont pas des bloc ce sont des textmult rassemblé dans un calque qui s'appel "topoalt" votre programme me dit de choisir le type de bloc et quand je clic sur la cote il ne se passe rien il me redemande de choisir le type de bloc. désolé pour le dérangement
Bred Posté(e) le 30 mars 2007 Posté(e) le 30 mars 2007 ???... Ben Alors ???ce sont des blocs topo ... Allez, ciblé sur les Mtxt dans le calque "topoalt" (defun c:txtZ (/ COORD-P NVLLE-COORD SEL VAL-TXT X) (setq sel (ssget "_X" '((0 . "MTEXT")(8 . "topoalt"))) x 0) (repeat (sslength sel) (setq coord-P (cdr (assoc 10 (entget (ssname sel x)))) val-txt (atof (cdr (assoc 1 (entget (ssname sel x))))) Nvlle-coord (list (car coord-P) (cadr coord-P) val-txt)) (entmod (subst (cons 10 Nvlle-coord) (cons 10 coord-P) (entget (ssname sel x)))) (setq x (+ 1 x)) ) (princ (strcat "\n" (rtos (sslength sel)) " Textes traités.")) (princ) ) ça marche ? Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
didier Posté(e) le 30 mars 2007 Posté(e) le 30 mars 2007 Hello ce dont parle ahmednassim est récurrent,en effet,souvent, les géomètres,explosent les blocs des points topo.de cette façon, le texte (attribut) n'est plus lié au point.le débat n'est pas de savoir pourquoi ils agissent ainsic'est d'y remédier. le point connu en altitude c'est le POINTpas le point d'insertion du TEXTEsi les attributs ne sont.pas déplacés rapport au point,un lisp peut traiter l'ensemble du dessinen notant le delta X et le delta Y du texte rapport au pointsi tu es tombé sur un sadique qui a bougé les attributs,un lisp te le fera aussi, mais la sélection se fera à la pince à épilertexte puis point et ainsi de suite... je suis géomètre aussi et si tu as de bons contacts avec ton client,le géomètre te fera passer le fichier original. le souci de la routine de Bred, c'est qu'il tient compte du point d'insertion du texteil ne pouvait pas savoir que le texte n'est là que pour renseigner un point. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Bred Posté(e) le 30 mars 2007 Posté(e) le 30 mars 2007 ça commence donc à d'éclaircir.....Et ce point, est t'il toujours dans la même position par rapport au texte ?...Car si c'est le cas, on peut reconstruire peut-être le bloc par rapport au texte.... ou tout bouger en parrallèle .... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ahmednassim Posté(e) le 1 avril 2007 Auteur Posté(e) le 1 avril 2007 ca marche pasvotre prog m'affiche le message suivant "type d'argument incorrect: lselsetp nil" merci encore
Bred Posté(e) le 1 avril 2007 Posté(e) le 1 avril 2007 :casstet: C'est sûr que c'est des textmult ?... pas du text simple ?si tu veux tu peux m'envoyer ton fichier là : manufred@neuf.fr. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 2 avril 2007 Posté(e) le 2 avril 2007 OK, j'ai bien reçu ton plan.Je ne comprends pas :- ce n'est pas du "MultiTexte" comme tu le disais plus haut, mais du "texte" simple.donc dans mon prog ci-avant tu remplaces "MTEXT" par "TEXT", et ça marche .... mais ....tes textes sont Déjà implanter sur la bonne altitude ! :casstet: J'ai cherché alors des points nodal en imaginant que comme le décris Didier c'est une explosion de bloc point topo, mais je n'en ai trouvé que quelque-uns (des nodal sur le calque "semi2").Ces points ont une différence d'implantation par rapport au texte de -0.1 sur les x et +0.1 sur le y ...Mais les text n'ont pas TOUS un point nodal proche....Donc, soit tu prends le risque que je te ponde un lisp qui t'insert un nouveau bloc topo à ce point en reprenant la valeur du text.... ce qui ne sera peut-être pas juste pour tous les points, soit tu suit l'idée de Didier et tu demandes à ce que l'on t'envois le fichier sans les blocs explosés.... Tiens moi au courant. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 3 avril 2007 Posté(e) le 3 avril 2007 J'ai écrit une routine permettant de reconstruire ton plan ici.Cela part du principe que tous les text avait un point nodal identique. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ahmednassim Posté(e) le 6 avril 2007 Auteur Posté(e) le 6 avril 2007 merci beaucoup mon ami c'est trés généreux de votre part
j.bvgnt Posté(e) le 28 juillet 2007 Posté(e) le 28 juillet 2007 Salut à tous, j'ai le même problème (un plan géomètre 2D que je checrhe a transformer en 3D). Votre script marche bien sur mes blocs composés d'un point et de deux attributs, sauf qu'il récupère chez moi les propriétés de l'attribut MAT du point et non ALT qui est en second.J'ai bien essayé de trifouiller le lisp, mais rien de concluant. Si quelqu'un peut m'éclairer ce sera avec plaisir. julien.
j.bvgnt Posté(e) le 30 juillet 2007 Posté(e) le 30 juillet 2007 Résolu mon problème en utilisant la commande "battman" qui permet de changer l'ordre des attributs dans un bloc. Juste pour le fun, j'aimerais quand même bien comprendre la syntaxe lisp pour selectionner le deuxième attribut.
Bred Posté(e) le 4 août 2007 Posté(e) le 4 août 2007 Salut j.bvgnt , et bienvenue !Votre script marche bien sur mes blocs composés d'un point et de deux attributs, sauf qu'il récupère chez moi les propriétés de l'attribut MAT du point et non ALT qui est en second.J'avoues ne pas trés bien comprendre : mon lisp récupères un texte et un nodal pour en créer un point topo (créer un bloc) et faire de même avec tous les points équivalent.. et tu me dis que tu as déjà le point topo en bloc ?...ce lisp n'as aucune utilité alors... :casstet: Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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