krunch Posté(e) le 19 septembre 2012 Posté(e) le 19 septembre 2012 Bonjour Juste une question de choix : on peut modifier les objets d'un bloc XRef mais les modification ne seront pas enregistrées dans le dessin (ok?).Donc, pour une commande qui rend la chose possible, il paraît logique d'empêcher les modifs uniquement pour les blocs XRef .. Vous êtes d'accord avec ça ?
philsogood Posté(e) le 19 septembre 2012 Posté(e) le 19 septembre 2012 rien compris! :/ Projeteur Revit Indépendant - traitement des eaux/CVC
Titi95 Posté(e) le 19 septembre 2012 Posté(e) le 19 septembre 2012 Si on ouvre un Xref à partir d'un plan ou il est inséré et qu'on lui apporte des modifications en enregistrant à la fin, les modifications sont apportés au fichier Xref. Mes anciennes réalisations Autocad
lecrabe Posté(e) le 19 septembre 2012 Posté(e) le 19 septembre 2012 Hello Je suis un vieux decapode de 55 ans et malheureusement je n'ai rien compris au sujet ! Sans doute que les jeunes sauront repondre ... lecrabe Autodesk Expert Elite Team
PHILPHIL Posté(e) le 19 septembre 2012 Posté(e) le 19 septembre 2012 hello loll il a mangé trop de chocolat tu parles de blocs ou tu parles d'XREF ? a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
krunch Posté(e) le 19 septembre 2012 Auteur Posté(e) le 19 septembre 2012 Si on ouvre un Xref à partir d'un plan ou il est inséré et qu'on lui apporte des modifications en enregistrant à la fin, les modifications sont apportés au fichier Xref. Oui avec _refedit en effet, j'avais oublié ça. A la base je parlais d'une commande Lisp qui permet d'accéder aux sous-objets (avec nentselp) et de les modifier à la volée, dans ce cas les modifs ne sont pas enregistrées. Donc il suffit d'interdire les modifs des objets imbriqués dans une XRef d'après le dernier argument de nentselp (chaîne d'imbrication). Merci et désolé si pas clair .. @philphil : je parlais des 2, mais la modif de bloc à la volée peut être pratique, alors que celle d'un bloc de XRef paraît inutile.
didier Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 coucou je me sens bien proche du décapode !!dire que je n'ai pas tout compris est un doux euphémisme ... changer des objets dans une Xref sans que la modification soit enregistréec'est comme sortir de l'argent de son compte sans qu'il soit débitéje veux bien un lisp qui va dans ce sens... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
philsogood Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 @didierje me sens bien proche du décapode !!ah oué? toi aussi tu te rapproches dangereusement de la retraite? ;)Phil Projeteur Revit Indépendant - traitement des eaux/CVC
bonuscad Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 A la base je parlais d'une commande Lisp qui permet d'accéder aux sous-objets (avec nentselp) et de les modifier à la volée Si (nentselp) effectivement permet d'ACCEDER aux informations de définitions des sous-objets en aucun cas elle ne permet de les MODIFIER par (entmod) pour des Xrefs. Pour moi ce que tu veux faire n'est pas possible. La fonction la plus proche serait NCOPY des Exprestools, qui elle effectivement récupère les informations imbriquées MAIS recrée par (entmake) celle ci dans le dessin courant. On pourrait (mais je vois pas trop l'intérêt! car disparaîtrait au 1er rafraîchissement de l'écran) utiliser (grdraw) ou (grvecs) pour redessiner virtuellement ces sous-entités d'après les infos retourné, et éventuellement modifiées, de (nentsel) ou (nentselp) Voilà pour le distinguo... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
krunch Posté(e) le 20 septembre 2012 Auteur Posté(e) le 20 septembre 2012 Ah, merci Bonuscad, il faut donc bloquer cette opération pour les XRef. J'avais fait un exemple tout bête (face à l'incompréhension générale), un code qui passe une entité en rouge : (defun c:go (/ in) (setq in (entget (car (nentselp)))) (entmod (subst (cons 62 1) (assoc 62 in) in)) ) Je l'applique sur une entité de XRef (par exemple un cercle). A la base il doit avoir une couleur (par exemple vert) afin qu'il comporte un code 62. Je tape Go, je sélectionne le cercle, je Regen : le cercle passe en rouge. J'enregistre, je ferme, je ré-ouvre : le cercle est vert .. En fait je ne veux pas spécialement l'appliquer aux XRefs, c'était juste pour confirmer qu'il y a un hiatus avec ces objets en particulier.
krunch Posté(e) le 20 septembre 2012 Auteur Posté(e) le 20 septembre 2012 J'aurais tout de même une autre question : peut on référencer de façon stable une entité de XRef ? Juste la référencer, pas la modifier. C'est pour un outil qui gère les Champs d'objets, et avec les XRefs c'est le même problème : les objets sont 'refabriqués' à chaque ouverture, ce qui fait que la référence est perdue. Si quelqu'un a une idée là dessus ..
VDH-Bruno Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 Bonjour krunch, Je tape Go, je sélectionne le cercle, je Regen : le cercle passe en rouge. J'enregistre, je ferme, je ré-ouvre : le cercle est vert ..Pour bien comprendre ce qui se passe je te propose la démonstration inverse de l’exemple que tu as proposé c.a.d ouvre ton fichier servant d’Xref, lance ta routine passe le cercle en rouge et enregistre, va dans ton fichier dans lequel est chargé l’Xref la modif ne sera répercuté seulement si tu recharge ton Xref ou que tu quittes puis relance ton fichier ce qui rechargera l’Xref modifiée. En fait je ne veux pas spécialement l'appliquer aux XRefs, c'était juste pour confirmer qu'il y a un hiatus avec ces objets en particulier.Donc comme tu le vois point de hiatus dans tout cela lorsque tu ouvres un fichier contenant une Xref cette dernière est chargé en mémoire dans ton dessin (comme un fichier tampon) dans ton exemple tu accède à l’entité du fichier tampon (un double de l’entité d’origine) et c’est cette dernière que tu modifie mais à aucun moment tu n’as modifié l’entité présente dans le fichier source. A+ Apprendre => Prendre => Rendre
VDH-Bruno Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 Re, J'aurais tout de même une autre question : peut on référencer de façon stable une entité de XRef ? Juste la référencer, pas la modifier. Oui je le pense en testant rapidement, si tu lances l’expression suivante :(entget (car (nentselp))) Dans ton fichier servant d’Xref et celui dans le quelle il est insérer les noms de maintien (handle) semble respecté code 5 en dxf par ce biais tu dois donc pouvoir arriver à quelque chose.. Cordialement, Apprendre => Prendre => Rendre
krunch Posté(e) le 20 septembre 2012 Auteur Posté(e) le 20 septembre 2012 Ok merci Bruno. Mais en fait pour ma dernière question il s'agit de d'attacher un entname (ou éventuellement un ID) dans un objet champ.Et à priori (?), en admettant que je retrouve le entname du fichier source depuis le handle, ça m'étonnerait que le champ fonctionne avec une entité d'un autre fichier ..
Patrick_35 Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 Salut Dans ton fichier servant d’Xref et celui dans le quelle il est insérer les noms de maintien (handle) semble respecté code 5 en dxf par ce biais tu dois donc pouvoir arriver à quelque chose..Je confirme ce qu'indique VDH-Bruno, il faut utiliser le numéro de maintien et pour retrouver à quel objet il appartient, tu as la fonction lisp handent @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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