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

Piloter un paramètre d'un bloc dynamique par l'attribution d'un attribut

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

gerolamo2412

Guest
bonjour à tous,
je voudrais savoir si vous pouvez piloter un paramètre d'un bloc dynamique à travers l'attribution d'un attribut.
par exemple:le bloc est un carré, et l'insérant, je suis tenu de définir un attribut (alpha), de sorte que le côté carré est égal au péché (alpha).
est-il possible de le faire ?
merci beaucoup.
 
lors de la sélection du bloc, la fenêtre de propriété liste, dans la section personnalisée, les paramètres.
si vous le sélectionnez, le symbole de la calculatrice apparaît, qui vous renvoie ce dont vous avez besoin, le péché de l'angle exprimé en 65.
pourquoi compliquer votre vie en gérant un attribut ?

j'attache le bloc dynamique avec le paramètre distance1 qui varie la taille carrée en fonction de la valeur.

au revoir.
 

Pièces jointes

merci pour la réponse immédiate.
ce que vous avez suggéré est certainement la méthode la plus simple.

mon problème est qu'en réalité, le paramètre est lié à une formule un peu plus longue qu'un sein (une paire de soustractions et un sein et cosinus).
puis en utilisant la calculatrice il est nécessaire de coller chaque fois une telle formule.
ce serait bien si tout se passait automatiquement en tapant seulement les 2 données nécessaires à l'utilisateur lors de l'entrée du bloc.

tu peux faire quelque chose comme ça ?
 
(chgdynprop n "distance1" 1.0)

où n est le nom de l'entité qui identifie le bloc, que vous pouvez obtenir comme suit:
(setq n (car (compléter "choisir le bloc: ")

le bloc que j'ai attaché dans la discussion a le paramètre que la fonction modifie, essayez-le, puis vous pouvez l'adapter à vos besoins.
attention à ce que la valeur 1.0 soit un nombre de type réel, écrire 1 serait une erreur.

au revoir.
 

Pièces jointes

on y est presque.
le problème est que j'ai une expérience minimale en autocad et ce que vous avez écrit plus tôt est un peu compliqué pour moi.

- concevoir mon bloc dynamique (pipe) identifiant le côté (distance1) au fer
- [setq n (car (entsel "choisir le bloc: "))))) ... avec cette instruction je prends mon pippo comme "n"
- télécharger le fichier .lsp que vous avez fourni avec _appload
et maintenant quelque chose devrait arriver ?

où devrais-je mettre mes mains sur ton .lsp ?
tu peux me donner d'autres conseils ?
merci beaucoup ! ! ! !
 
j'ai ajouté la commande chgpropd qui vous demande de sélectionner le bloc, d'entrer la valeur et de modifier la taille en fonction de cela.

pratiquement, en écriture de commande :
tchgpropd
sélectionner le bloc
écrire 2
le bloc double.

au revoir.
 

Pièces jointes

ça me donne cette erreur :

commande : chgpropd
sélectionner le bloc & #160;:
valeur: 2
; erreur: aucune définition de fonction: vlax-ename->vla-object

et où dois-je entrer mon événement dans votre code?

désolé...
 
pour la fonction aucune, désolé, mon erreur, vous devez insérer (vl-load-com) dans la tête du fichier lisp.

pour le péché, maintenant je change le lis et le repos.
 
d'abord merci pour l'infinie patience.

j'aimerais m'informer à quel point tu as écrit, mais je ne peux pas me connecter à ce code.

si le célèbre côté doit être égal à: (h-2*r(1-cos(alpha))/tan(alpha)

où h,r,alpha sont des valeurs que j'introduis du clavier, où dois-je mettre la formule?
merci encore...
 
h-2*r(1-cos(alpha))/tan(alpha) diventa
-> (h-2*r*(1-cos(alpha)))/tan(alpha)
oppure -> h-(2*r*(1-cos(alpha)))/tan(alpha)
 
je dirais que c'est parfait!!!: doigt:

une dernière chose: j'ai essayé d'insérer la fonction ronde pour obtenir toute la partie du nombre comme vous le voyez ci-dessous, où suis-je mal ?

(setq v (round(/ v)))

merci encore pour la disponibilité ! !
 
j'ai essayé d'utiliser la correction, mais ça me donne toujours une erreur.
si j'écris la fonction dans la ligne de commande au lieu de tout fonctionne.
pourquoi ?
je vous remercie.
 
mettre la correction au lieu de la ronde comme écrit avant me dit:

erreur : erreur d'automatisation. entrée invalide.

tu peux m'aider une dernière fois ? je deviens fou. .
 
je suis désolé une seconde. j'ai remarqué. mais la fonction ronde n'est pas native. vous devriez avoir un message d'erreur.
parce que je ne pense pas l'avoir vu dans le lisp, ce serait ainsi (arrondi pour excès):
(pour mémoire a) (fixe (+ 1,0 a)))
 
pouvez-vous me dire où je dois insérer combien vous écrivez dans le fichier qui m'a attaché rpo66 ?

plus que tout, comment puis-je me souvenir de cette fonction ?
je vous remercie.
 
je ne sais pas quoi vous dire, le fichier est bien... il fonctionne avec à la fois correct et rond (ajouté au bas du fichier). dépend des valeurs que vous entrez.
 

Pièces jointes

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