Aller au contenu

attribut de bloc lié avec Z point nodal


lolb75

Messages recommandés

Bonjour a tous,

 

Je remercie encore Didier pour son lsp d'hier qui me rend vraiment service.

J'ose encore faire appel à vous, je sais j'abuse mais bon....

J'ai besoin d'une commande qui puisse inscrire dans l'étiquette de mon bloc

la valeur du point nodal ou il est inseré.

je joins un fichier avec 2 des blocs (j'en ai une centaine...).

 

merci d'avance

 

Amicalement

essai bloc.zip

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

tu fais exprès de compliquer les choses (hihi)

 

dans le fichier que tu envoies

il n'y a pas de point nodal

ce qui empêche de comprendre ça :

la valeur du point nodal ou il est inséré.

 

c'est quoi cette valeur qu'il faut prendre ?

 

est-ce que tu veux insérer le bloc comme dans mon lisp

mais en regardant si à cet endroit (point nodal)

il y a un bloc inséré et qui a une étiquette "identifiant" renseignée

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

hello Didier,

 

1000 merci, mais hélas ça ne fonctionne pas...

voici le message:

 

Choix des objets: 1 trouvé(s)

Choix des objets:

Choix des objets: 1 trouvé(s)

Choix des objets:

; erreur: type d'argument incorrect: numberp: nil

 

mais la commande serait parfaite autrement...

 

a+

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

comme je te le disais c'est vite fait, donc les contrôles sont absents

d'abord il faut sélectionner les points (points AutoCAD)

ensuite sélectionner les blocs (qui contiennent un identifiant)

 

ensuite ça devrait marcher seul

 

tiens-moi au courant.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

est-ce que tu as bien un point au point d'insertion du bloc

mets un fichier sur dlfree pour que je regarde.

 

parce que avec tests exemples ça fonctionne

mais il n'y a que deux blocs alors c'est pas quantifiable.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

dans le fichier que tu envoies

il y a des blocs qui n'ont pas d'identifiants.

 

je demande au programme de copier cette valeur

s'il n'y en a pas !!! plantage

je te l'ai bien dit, pas de contrôles.

 

si tu veux aller plus avant

soit il faut que tu donnes un vrai fichier exemple

soit il faut que tu sélectionnes des objets qui contiennent les éléments attendus.

 

en lisp on peut faire plein de trucs,

mais pas se mettre dans la tête de celui qui a dessiné.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

je te demande un effort j'en ferai un en retour.

 

que faut-il faire EXACTEMENT

 

tu demandes de trouver l'identifiant et de le coller dans l'attribut du bloc qu'on insère mais il n'y a pas d'identifiant dans les blocs dessinés (arbres, poteaux...)

 

donc je te demande de décrire pas à pas ce qu'il y a à faire

exemple

prendre l'altitude du point

lire l'identifiant du bloc

dessiner un bloc (point topo) avec identifiant et altitude

 

ou bien

 

cliquer le bloc dessiné (arbres, poteaux...)

clique le point nodal

déplacer le bloc dessiné à l'attitude du point nodal.

 

franchement je ne comprends plus ta demande.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

re re hello

 

J'ai besoin d'une commande qui puisse inscrire dans l'attribut "altitude"de mon bloc

la valeur du point nodal ou il est inseré.

 

Peut etre:

 

cliquer le bloc dessiné (arbres, poteaux...)(il ont tous des attributs)

cliquer le point nodal

et ça inscrirai le Z du point nodal dans l'attribut "altitude".

 

heu apres je ne sais plus comment expliquer.... :(

 

ci joint un autre fichier

 

Amicalement

essai bloc-4.zip

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

il semble que j'aie mal compris.

j'ai fait une fixette sur les identifiants, sans doute à cause du premier lisp

il fallait me détromper plus tôt.

 

essaie ce nouveau programme

mais il faut qu'il n'y ait à l'écran que les points à traiter et les blocs

car si tu sélectionnes un bloc où il y a deux points

ça va planter

 

si ça te va on va pouvoir entrer dans les contrôles...

 

amicalement

lolb75 CadXP 03.LSP

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

pour mémoire

quatre-vingt-dix-neuf pour cent des soucis proviennent

d'une incompréhension entre les gens.

 

à ne jamais perdre de vue.

 

il est bien préférable d'expliquer en français dans le texte

quitte à expliciter dans le détail

que de croire que l'autre va comprendre de lui-même...

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Quelque chose dans ce style ?

(defun c:alt(/ blo doc ent sui)
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (while (setq ent (entsel "\nChoisissez le point nodal : "))
   (and (setq ent (entget (car ent)))
 (eq (cdr (assoc 0 ent)) "POINT")
     (while (and (not sui) (setq blo (entsel "\nChoisissez le bloc associé : ")))
(and (setq blo (vlax-ename->vla-object (car blo)))
     (eq (vla-get-objectname blo) "AcDbBlockReference")
  (progn
    (setq sui nil)
    (foreach att (vlax-invoke blo 'getattributes)
      (and (eq (strcase (vla-get-tagstring att)) "ALTITUDE")
	(progn
	  (vla-put-textstring att (cadddr (assoc 10 ent)))
	  (setq sui T)
	)
      )
    )
    (or sui (princ "\nBloc sans l'étiquette \"ALTITUDE\""))
  )
)
     )
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

@+

 

ps : le temps d'écrire le lisp et la réponse de Didier arrive ;)

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

merci a tous les 2

 

le deuxième fonctionne très bien, malheureusement Didier le tiens me donne toujours le meme message...

 

Mais merci a toi d'avoir été si patient et c'est vrai que quand on est dans son "truc" on ne fait pas forcement assez d'effort pour etre compris, le principal est de trouver une solution...

 

Merci encore et c'est promis j'vous embête plus!...

Enfin jusqu'a la prochaine fois.... :)

A+

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

c'est cet esprit oui.

 

j'ai juste fait une sélection par capture

puis je compare les coordonnées du point nodal et du point d'insertion du bloc

pour savoir sur quel bloc affecter le z du point nodal

puis une boucle passe au point nodal suivant.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

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é