Aller au contenu

Messages recommandés

Posté(e)

(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 Z

oi

- 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 3d

ce 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...

Posté(e)

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...

Posté(e)

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...

Posté(e)

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

Posté(e)

???... 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...

Posté(e)

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 ainsi

c'est d'y remédier.

 

le point connu en altitude c'est le POINT

pas le point d'insertion du TEXTE

si les attributs ne sont.pas déplacés rapport au point,

un lisp peut traiter l'ensemble du dessin

en notant le delta X et le delta Y du texte rapport au point

si 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 à épiler

texte 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 texte

il ne pouvait pas savoir que le texte n'est là que pour renseigner un point.

 

amicalement

 

Posté(e)

ç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...

Posté(e)

: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...

Posté(e)

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...

Posté(e)

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...

  • 3 mois après...
Posté(e)

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.

Posté(e)

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.

Posté(e)

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...

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité