• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Changer les blocs dynamiques de visibilité depuis la ligne de commande

  • Auteur du sujet Auteur du sujet gabry_one
  • Date de début Date de début

gabry_one

Guest
bonsoir.

comme de l'objet ma question est très simple: pouvez-vous changer la visibilité des blocs dynamiques en insérant des instructions de la ligne de commande?
jusqu'à :frown recherché: j'ai réussi à trouver seulement la commande Caprop valable uniquement pour les propriétés du champ "général" ayant un objet

je remercie quiconque peut me donner une réponse
 
merci tristan pour l'intérêt, je dois souvent insérer sur les plansimetries un certain nombre de points, parfois même plus de 100 chacun avec son propre id, symbole, et parfois d'autres informations que j'ai toujours sur les fichiers excel. à cet égard, j'ai créé une macro vba excel assez simple, qui, à partir de la table, génère une liste de lignes de commande comme:
- enceinte
symbolique du pont
100 100,0
1
0
punto001
valeur
valoreb

_ sélectionner
100 100,0

bien sûr la liste est répétée pour tous les points dans le tableau..
à ce stade je n'aurais besoin que de la commande pour modifier l'état de visibilité du bloc nouvellement inséré (et sélectionné) afin d'éviter le travail de sélection des points aux groupes pour leur attribuer le bon symbole !
je sais que je pourrais résoudre en utilisant des blocs séparés, mais alors pendant la révision de la table je n'aurais plus la possibilité de changer au vol le symbolisme d'un point

je ne sais même pas où mettre mes mains, si quelqu'un pouvait trouver une solution je serais très reconnaissant ! - oui.
 
le but des blocs dynamiques est celui-ci : pouvoir les changer sans recourir à d'autres blocs et donc utiliser des listes plus ou moins longues comme celle de la visibilité.
je me demande, pourquoi créer une commande ad hoc quand je dois encore agir sur une liste, qui ne peut pas être sur l'invite autocad?
 
je me demande, pourquoi créer une commande ad hoc quand je dois encore agir sur une liste, qui ne peut pas être sur l'invite autocad?
je ne suis pas très clair sur la question, mais le problème que je me pose est le suivant:phase 1 - saisie des donnéesje réalise la table en insérant un certain nombre de blocs avec l'attribut. les données originales sont trouvées sur excel de sorte qu'il est facile d'insérer tous les blocs dans un seul baril de ligne de commande comme indiqué certains postes ci-dessus
ne serait pas un problème d'utiliser différents blocs pour différents symboles si ce n'était pas pour la phase 2phase 2 - examen des donnéesdans la phase de révision il se trouve vouloir "forcer" les données originales et changer le symbolisme de certains blocs, à ce stade si je n'avais pas utilisé un bloc dynamique dans la phase précédente, je me trouverais à devoir remplacer le bloc existant devant également insérer manuellement les données de ce bloc!

sont également bienvenues solutions alternatives bien sûr!
 
vous avez raison, tant de gens me disent que je suis mauvais. .
j'ai dit que si vous insérez tous les blocs dans un seul coup, vous serez toujours forcé de changer le symbolisme des blocs manuellement et cela vous ne pouvez pas le faire à partir de la ligne de commande mais seulement en cliquant sur le symbole de visibilité du bloc lui-même.
alternative, avec le bon lisp, pourrait être de remplacer le bloc par un autre, en récupérant les données du premier, le tout en un seul clic. ici aussi, je ne peux pas le faire en tant que ligne de commande.
 
avec le bon lisp, il pourrait être de remplacer le bloc par un autre, en récupérant les données du premier, le tout en un seul clic.
ici, ce serait une bonne solution à mon problème, sûr de faire une commande lisp je ne sais pas par où commencer :frown:... connaissez-vous un guide rapide pour le lisp?
 
bonjour tout le monde, quelques mois après l'ouverture du post, je pensais poster la solution que j'ai trouvée sur ce même site:"putdbprops.lsp" permet d'attribuer non seulement la visibilité mais aussi d'autres "propriétés" dynamiques directement depuis la ligne de commande :finger:
et puisqu'il y a aussi attaché le fichier excel que j'ai produit et perfectionné pour l'insertion multiple de blocs qui, à partir d'une table id et de ses coordonnées, permet de placer sur une conception de cad avec quelques étapes centaines de blocs avec des propriétés spécifiques pour chaque (attributs, visibilité, couleur, échelle, rotation)
evidemment pour exécuter l'ensemble va d'abord chargé le fichier lisp, que je recommande d'insérer dans le groupe de départ. en plus d'être une procédure un peu forcée pour l'autocad il y aurait toute une série de tours à prendre, donc si quelqu'un voulait essayer et avoir des difficultés je serai heureux de l'aider!
 

Pièces jointes

J'ai essayé votre procédure, mais j'ai fait une erreur.

" commande: puddbprops
; erreur : trop peu d'arguments
commande: puddbprops; erreur: trop peu d'arguments "

Tu sais pourquoi ? testé sur 2007 et 2014 aul.
Je vous remercie.
 
J'ai essayé votre procédure, mais j'ai fait une erreur.

" commande: puddbprops
; erreur : trop peu d'arguments
commande: puddbprops; erreur: trop peu d'arguments "

Tu sais pourquoi ? testé sur 2007 et 2014 aul.
Je vous remercie.
Envoyez-moi le fichier dwg avec le bloc que vous avez utilisé et le fichier Excel que vous avez compilé, et voyons.
 
Tout d'abord, merci pour la réponse. Je ne pensais pas pouvoir avoir une discussion en 2012.
Je ne connais pas tant la langue. En réalité, je voudrais changer la visibilité d'un bloc dynamique déjà inséré.
le cas pratique veut que dans un fichier topographique il y a beaucoup de blocs (type point avec 3 attributs descriptifs et une visibilité, appelé "vert") et mon base de départ rapporte sur différentes couches lesverts avec un attribut spécifique (les volets sont sur la couche "chiusini" etc.). Maintenant, je dois « manuellement » isoler chaque couche, sélectionner l'attribut contenu et propriétés : l'attribut champ spécifique de la description et l'aspect spécifique de la visibilité. comme ils sont de nombreux types, la chose est un peu ennuyeux, mais je pense simple d'automatiser.
Merci pour votre aide précieuse.
 
Excusez-moi, mais sans dessiner sous mes yeux, n'est pas encore complètement clair pour moi le problème, les blocs ont déjà été placés et ne sont mis à jour que les attributs? Les blocs sont déjà sur la bonne couche ?
Cependant je ne programme pas avec lisp, je n'ai créé qu'une macro excel dans vba qui à partir d'une table d'information (chaque ligne est liée à l'information d'un bloc: emplacement, couleur, visibilité etc.) génère une liste de lignes de texte qui sera collée dans la fenêtre « ligne de commande » d'autocad. donc dans autocad sont créés tous les blocs énumérés dans la table excel avec ses propriétés.
avec ce système vous ne pouvez pas changer les blocs déjà insérés, comme je semble comprendre pour votre cas. mais il pourrait être simple d'extraire les informations des blocs existants avec la commande "extrait de données", supprimer les blocs et les réinsérer avec mon système en intégrant dans le tableau les informations manquantes.
Mon système est très faible parce qu'il n'y a pas d'interaction entre les lignes que je crée et les questions que l'autocad pose ligne après ligne, de sorte que les lignes qui correspondent parfaitement. Parfois, entre différentes versions d'autocad les questions pour l'insertion des blocs changent et au fil du temps j'ai dû adapter la macro pour lister les différentes commandes dans le bon ordre. En attendant, je vous ai demandé de me fournir le fichier Excel compilé par vous avec le fichier dwg.
 
en fait je commence à partir d'un fichier avec déjà à l'intérieur les blocs insérés et je cherchais une commande lisp qui a changé le paramètre de visibilité et la description d'attribut des blocs dynamiques
 

Pièces jointes

en fait je commence à partir d'un fichier avec déjà à l'intérieur les blocs insérés et je cherchais une commande lisp qui a changé le paramètre de visibilité et la description d'attribut des blocs dynamiques
Salut, je prie pour ne pas manquer beaucoup de temps et donc j'ai dû m'adapter à ce que j'avais: ma table excel a fourni l'insertion de blocs avec seulement 2 attributs, qui fournissent heureusement 3 lignes de texte chacune, donc j'ai dû changer votre bloc "vert" comme il avait un seul attribut multiligne. J'ai dit cela j'ai également modifié mon tableau afin qu'il puisse changer ainsi que la visibilité du bloc aussi la couche d'adhésion. et ça a marché ! Le collage des lignes de commande dans autocad a été généré tous les blocs sur le calque indiqué.
modus operandi:
J'ai extrait toutes les informations de vos blocs (voir "extrait de données de blocs.txt") avec la commande "extrait de données" d'autocad puis les a supprimées.
sur le bloc-notes J'ai remplacé les points par des virgules (autrement excelle fait casino) et réinitialiser les données txt sur le fichier temporaire "extraction de données à partir de blocs.xlsx"
J'ai collé les colonnes de données individuelles dans le tableau "Insérer les blocs avec layer.xlsm" en respectant l'en-tête de colonne
J'ai correctement sélectionné les paramètres en haut à droite : bloc avec 1 attribut multiligne, paramètre de visibilité "oui", échelle uniforme "oui" (p.s. J'ai défini l'échelle uniforme sur votre bloc).
reste à compiler pour chaque ligne (chaque ligne est un bloc!) la description que vous aviez prévue dans la 3ème ligne, que j'ai attribué une valeur d'exemple "descr_001" et attribué le bon paramètre de visibilité (j'ai compilé les 20/30 premiers blocs)
cliquez sur le traitement des données et une feuille de sortie est générée avec toutes les lignes de commande (par exemple, les lignes sont déjà en mémoire, il suffit de les coller)
ctrl+v sur la ligne de commande autocad et voir qu'en quelques secondes des centaines de blocs sont créés avec toutes les informations compilées.
note:
1. rappelez-vous que pour faire tout le travail de roulement, vous devez nécessairement charger les puddbprops. lsp que j'ai entré dans l'annexe (ce n'est pas le mien, je l'ai trouvé sur Internet)
2. quand il semble avoir fini d'entrer dans les blocs, l'autocad gèle, et reste "geler" même pendant 40/50 secondes, mais alors il récupère toujours!
3. éviter d'insérer des espaces dans les descriptions, plutôt utiliser "_"

J'espère vous avoir aidé. Dis bonjour !
 

Pièces jointes

Je regarde le fichier que la procédure a généré mais malheureusement dans les blocs me semble encore qu'il n'y a pas d'automatisme pour varier le paramètre de visibilité ou mal?
 
à condition que je n'avais pas écrit à la place précédente que le fichier dwg joint a les blocs insérés avec ma procédure.
ainsi prédit, c'est un extrait de fichier généré par la macro (relativement au point 102):
- Enceinte
(PHP 4 = 4.1.0)
1510985,554,5041253,332


102
11.05
(PHP 4 = 4.1.0)

(putdbprops (car (entsel "\ nselect dynamique bloc:") '(("visibilité." "Caditoia chiu"))
ultimo
Selez
ultimo

Caprop
couche
289 chiu catitoia
alariga "(putdbprops (car (entsel "\nselect dynamique block:)))"("("visibilité" . "Chaque cadavre"))" est défini la visibilité du bloc sur le symbole de Caditoia, et en fait sur le fichier. dwg précédemment allegto le bloc n. 102 est réglé sur le caditoia.
Pourquoi tu ne vois pas l'automatisme ? Ou peut-être que je n'ai pas compris ce dont tu avais besoin ?
 
C'est peut-être mieux si on vous manque quelques jours pour faire des tests, je ne veux jamais vous poser quelques questions triviales en perdant du temps et de la patience. Nous vous parlerons dans quelques jours si vous avez encore du temps à consacrer. Je vous remercie.
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut