Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

J'ai fait une serie de LISP pour la 2000 et je suis entraint de voir pour le passage en 2004.

 

Il y a un probleme avec les boites de dialogue des attribut qui apparait au lieu de me laisser la saisie dans la ligne des commande.

Je ne sais pas si je suis claire?

Posté(e)

Je suppose ATTEDIT.

Tout a bien changé. depuis 2004.

 

Mais ATTDIA, au fait ?

 

Précises un peu ta question. Quand même.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Hello

 

En effet en général ATTDIA=0 lors du déroulement des Scripts et Programmes ...

 

Et ATTDIA=1 lors du travail "normal" ...

 

A+

 

Autodesk Expert Elite Team

Posté(e)

Wah, ca remarche.

 

merci bien a tous les 2 pour votre precieuse info.

 

 

C'est une LISP qui place un attribut de niveau selon le niveau 0.0 du scu (utile pour les facade des architectes)

 

Un clique sur un niveau existant le mets a jour.

un retour permet de mettre un nouveau niveau.

 

Je tiens le scripte a la disposition de toutes personnes interréssées!

Est-il possible de le mettre qqpart par sur CadXP?

Posté(e)

Je pense que tu peux le poster ici. S'il n'est pas trop long et puis ballades-toi dans la zone de téléchargement membres, il y a un lien pour proposer des fichiers.

 

Figures-toi que j'ai déjà pensé à cette appli (je fais aussi de l'archi et du Batiment).

En effet, les cotes d'altitudes sont bien sous Autocad mais elles nous obligent à avoir un point zéro en rapport.

 

C'est donc un bloc stylisable à souhait avec un attribut ?

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

C'est un triangle avec un solide dedans et 2 attributs:

le premier donne le niveau en m (si le dessin est en cm). et le deusieme est personalisable.

 

je le mets dans la partie téléchargement. car il y a un lisp, un dwg et un bmp (icone)

 

J'attend les commentaires :-)

Invité Patrick
Posté(e)

Quand la 2005 sortira, on n'aura même plus besoin de LISP, ton bloc avec attributs se mettra à jour tout seul en fonction de l'altitude! Magie? Non,...réacteurs...

 

Je l'ai fait pour vous:

 

images/articles/niveau_auto_autocad_2005.png

Posté(e)

Oh la la, tout ce qu'il va falloir apprendre et comprendre...

 

Bon, le résultat ressemble encore à la cotation ordonnée.

 

Si j'ai le temps, je regarde la ressource de Krynn(oline). Mais l'avantage de programmer c'est de ne pas être tributaire de l'altitude Y du SCU (plan pas à l'échelle, espace objet où l'on trouve plusieurs coupes disposées de telle manière qu'on ne peut se caler par rapport au point 0).

 

Ceci dit, ce que tu nous montre, Patrick, va peut-être changer notre vie :question:

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Invité Patrick
Posté(e)
Bon, le résultat ressemble encore à la cotation ordonnée.

 

Ah non, une cotation en ordonnée ne se met pas à jour si on la déplace. C'est une différence essentielle avec les champs.

Posté(e)

Hello,

Patrick, tu parles de "réacteurs",

c'est un trou dans mes connaissances.

j'ai fait des dizaines de routines, souvent de la mise à jour d'attributs

qui seraient plus "évoluées" si je maitrisais la technologie des réacteurs.

Qui peut décanter le problème ?

Un bouquin ?

Quelqu'un sur le site ?

mais, il n'y a peut être personne :(

espoir !!

Posté(e)

Ah si,...

 

D'accord si on déplace ou si on étire une cote ordonnée, ca ne donne pas le même résultat. Et l'on peut se satisfaire de la cotation ordonnée, soit en gardant le point 0 (grip étirable...), soit en le déplacant (en l'étirant, je veux dire, et la cotation se met à jour)

 

Mais je n'ai cherché en rien à contredire ou à donner une mauvaise info, je n'ai pas parlé de déplacement. Mais si le réacteur que tu nous présentes et qui met à jour l'attribut du bloc est basé sur l'alitude Y, je suppose que c'est sur le point 0 fixe du SCG (ou SCU ? Est-ce possible ?, l'image ne le montre pas)

 

Comment peut-il être supérieur à un programme qui propose de choisir le point 0 dans une partie du dessin et un autre point 0 dans une autre partie du dessin pour faire des cotations d'altitude sans géner le travail ?

Ou supérieur à l'étirement du grip de point 0 de la cotation ordonnée ?

 

************************

 

On ne doit pas se comprendre sur la cotation ordonnée, pour moi elle est très puissante et on peut, non pas choisir, mais changer le point 0 en l'étirant après mise en place.

 

Une nouvelle C O se cale tjs au point 0 du SCU.

On peut la mettre à une échelle adaptée au dessin.

On peut mettre un préfixe.

Malheuresement on ne peut pas imposer une flèche qui soit remplacées par un bloc, ce que l'on peut faire pour d'autres cotations.

On peut tout étirer ou déplacer le point de base ou la ligne d'application, elle se met à jour .

 

*************************

 

Ceci dit, je suis avide de voir encore des exemples de ces fonctionnalités, et comme Didier, je vais devoir attendre d'avoir 2005 sous les doigts.

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Invité Patrick
Posté(e)

Le bloc dont parlait Krynn est un bloc comportant des attributs, pas des cotes. Il n'est pas possible avant AutoCAD 2005 de faire en sorte, sans programmation, que ces attributs se mettent à jour en fonction de la position du bloc contenant ces attributs.

 

Si l'on clique sur le point de définition d'une cote en ordonnée pour le déplacer, la cote se met à jour mais le texte ne se déplace pas... on se retrouve alors par exemple avec une cote accrochée au niveau 1 d'un bâtiment alors que le texte est au niveau deux... pas terrible. Si en plus on veut représenter un triangle comme Krynn le suggère, il faut déplacer trois objets pour arriver à mettre à jour ce niveau.

 

Dans AutoCAD 2005 il suffit de déplacer/étirer/cliquer sur la poignée, ce que vous voulez sur le bloc de niveau contenant les attributs pour que ceux ci se mettent à jour... solution évidemment bien supérieure à celle décrite précédemment.

 

En ce qui concerne la valeur du Y, elle est évidemment exprimée par rapport à l'origine du SCU ou du SCG, ce qui est strictement équivalent puisque l'origine d'un système de coordonnées est par définition toujours à 0,0,0.

 

Comment peut-il être supérieur à un programme qui propose de choisir le point 0 dans une partie du dessin et un autre point 0 dans une autre partie du dessin pour faire des cotations d'altitude sans géner le travail ?

Je ne vois pas la nécessité d'avoir plusieurs points d'altitude zéro dans le même dessin. Cela me parait même être extrêmement dommageable à la bonne compréhension du dessin, l'altitude zéro étant par définition...l'altitude zéro et rien d'autre!

L'utilisation d'un programme LISP n'est d'autre part pas possible dans les versions LT, alors que la technique AutoCAD 2005 que j'expliquais, si.

 

Ou supérieur à l'étirement du grip de point 0 de la cotation ordonnée ?

Comme je le disais plus haut, l'utilisation d'une cotation ordonnée ne permet pas de faire ce dont parlait Krynn, c'est à dire de mettre à jour l'altitude d'un point dans un attribut de bloc. Ce n'est tout simplement pas possible. De plus je le rappelle, l'étirement du point de base, ne modifiera pas la position du texte, cela n'a donc aucun intérêt.

Posté(e)

La dessus, je démords pas, on ne se comprend pas.

 

Oui, l'attribut de bloc c'est mieux, c + sympa.

Oui dans ce cas ta méthode (2005) ou celle d'un programme est mieux, je le dis, c'est dommage que CO ne puisse recevoir de bloc en place de la ligne d'attache.

 

Non, je ne vois rien de dommageable à avoir diverse coupes, diversement positionnées dans l'espace objet.

Les CO sont alors très puissantes, il faut savoir s'en servir.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Cher Patrick tu essayes de leur faire sentir du nectar (pour une fois qu'on a un bon truc standard dans Autocad) et ils ont le nez bouché !!!

Bon tu verras, quand ils l'auront leur 2005 , il n'arrêteront pas d'en parler c'est sur !!

 

Je rejoins Didier sur la notion de réacteur. Ce serait interessant de la référencer soit par un extrait de quelque chose sur le net soit par des réflexions personnelles ..

Formateur

ATC Autocad - Mechanical - Inventor - Electrical

Posté(e)

pour les reacteurs voici un petit lisp qui redresse l' attribut "REF" aprés un commande rotation d'un bloc

 

(defun REDRESSE ()

(setq JEU_BLOC NIL

CX NIL

DEF_LE_BLOC

NIL

FILS NIL

DEF_FILS NIL

TYPE_ENTITE

NIL

 

) ;_ Fin de setq

(setq JEU_BLOC (ssget "p"))

(setq CX 0)

(while (setq LE_BLOC (ssname JEU_BLOC CX))

(setq CX (1+ CX)

DEF_LE_BLOC

(entget LE_BLOC)

) ;_ Fin de setq

(if (= "INSERT" (cdr (assoc 0 DEF_LE_BLOC)))

(progn

(setq FILS LE_BLOC)

(while (/= "SEQEND"

(setq TYPE_ENTITE

(cdr

(assoc

0

(setq DEF_FILS (entget (setq FILS (entnext FILS))))

) ;_ Fin de assoc

) ;_ Fin de cdr

) ;_ Fin de setq

) ;_ Fin de /=

(if (and (= "ATTRIB" TYPE_ENTITE)

(= "REF" (cdr (assoc 2 (entget FILS))))

) ;_ Fin de and

(progn

(setq P41 (cdr (assoc 41 DEF_LE_BLOC))

P42 (cdr (assoc 42 DEF_LE_BLOC))

) ;_ Fin de setq

(cond ((= 0 (- P41 P42))

(setq F41 1.0)

)

(t (setq F41 -1.0))

) ;_ Fin de cond

(setq DEF_FILS (subst (cons 41 F41)

(assoc 41 DEF_FILS)

DEF_FILS

) ;_ Fin de subst

) ;_ Fin de setq

(setq DEF_FILS (subst '(50 . 0.0)

(assoc 50 DEF_FILS)

DEF_FILS

) ;_ Fin de subst

) ;_ Fin de setq

(entmod DEF_FILS)

(entupd LE_BLOC)

 

) ;_ Fin de progn

) ;_ Fin de if

) ;_ Fin de while

) ;_ Fin de progn

) ;_ Fin de if

 

) ;_ Fin de while

)

 

 

et le lisp initialisant le reacteur

;;; chargement des extensions lisp

(vl-load-com)

(vlr-remove-all)

;;; fonction cleanreac

;;; nettoyage de tous les reacteurs

 

(defun CLEANREAC ()

(mapcar 'vlr-remove-all

'(:vlr-acdb-reactor

:vlr-editor-reactor

:vlr-linker-reactor

:vlr-object-reactor

)

)

)

;;;

(defun CHOIX_REAC (REACTEUR COMMANDE)

(setq reaction "rien")

(setq NOM_CDE (car COMMANDE))

(cond

((= "ROTATE" NOM_CDE) (REDRESSE))

;((= "DDATTE" NOM_CDE) (chgbloc))

)

)

 

;; appel de cleanreac

(CLEANREAC)

;;; initialisation des reacteurs

;;; quand on execute une commande appel de la fonction de redressement des attributs

 

 

(vlr-command-reactor NIL '((:vlr-commandended . choix_reac)))

 

 

;;;

 

les reacteurs sont a manier avec precaution, ils sont trés puissants, et il peuvent même faire planter autocad.

 

Posté(e)

c'est vrais je doit admetre que ce n'est pas trés clair, bon j'ais le temps

je vais tenter d'etre plus clair.

 

c'est la que ca se passe

(vlr-command-reactor NIL '((:vlr-commandended . choix_reac)))

 

comme c'est dit dans autolisp reference

(vlr-command-reactor data callback)

data = nil, car aucune donées associées

callback = une liste de paire pointée de la forme

((event-name . callback_function)(event-name....) ...)

event-name peut etre

:vlr-unknowcommand

:vlr-commandwillstart

:vlr-commandended

:vlr-commandcancelled

:vlr-commandfailed

 

donc

:vlr-commandended quand une commande autocad est terminé exécuter la fonction choix_reac

 

quand le reacteur execute choix_reac, il place le nom de la commande dans ma variable "commande" sou forme de paire pointée

"reacteur" lui je crois que c'est le type de reacteur qui est retourné ? je ne l'ai pas utilisé, mais comme il y a un ordre bien determiné dans le passage des variable, il faut qu'il soit la !

 

(defun CHOIX_REAC (REACTEUR COMMANDE); je n'est besoin que de "commande"

(setq reaction "rien") ; ce n'est qu'une variable de test que j'aurais du enlever !

(setq NOM_CDE (car COMMANDE)) ; donc la je reccupere ma commande

(cond

((= "ROTATE" NOM_CDE) (REDRESSE)); si la commande est rotate j'execute la fonction redresse

;((= "DDATTE" NOM_CDE) (chgbloc)); action si la commande est ddatte (mis en commentaire) donc desactivé

)

)

 

la fonction "redresse" elle n'a plus rien a voir avec le reacteur sinon qu'elle est lancé par lui!

 

c'est le seul reacteur que j'ais utilisé, mais les autre doivent suivre la même logique de fonctionnement, enfin ...

 

sinon encore attention au reacteurs, il peuvent vous pourir vos dessins, la vie ... etc ...

 

 

 

en esperant etre lisible.

Posté(e)

Yes, c’est génial ce truc, merci pour tes explications, ça permet en fait de détourner n’importe quelle commande a son profit, voir aussi de travailler avec d'autres applications, mais cela me pose un problème. A ce niveau, mieux vaut-il faire un développement en visal lisp ou en vba ?

 

@+

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

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é