Loïc MICHEL Posté(e) il y a 5 heures Posté(e) il y a 5 heures Bonjour, J'ai actuellement un problème sur mon programme. Je veux générer des conditions afin de modifier la visibilité de deux blocs. Tout fonctionne parfaitement sauf au moment de ma condition if. Savez-vous où est le problème ? Voici le moment où ça bloque : ;; Condition correcte (if (and (= (type_rsx) "PROJET") (= (config_nom) "TE À 3 EMBOITEMENTS") ) (progn (setpropertyvalue bloc1 "AcDbDynBlockPropertyVisibilité1" "Te à 3 emboitements") (setpropertyvalue bloc2 "AcDbDynBlockPropertyVisibilité1" "reseaux pour te a 3 emboitements (PROJET)") ) ) Dessin2.dwg pi lisp.LSP PI.DCL
Olivier Eckmann Posté(e) il y a 5 heures Posté(e) il y a 5 heures Bonjour, type_rsx est une fonction ou une variable. SI on le met entre parenthèse, c'est une fonction, donc quelque part dans le code il y a une définition du type (defun type_rsx Si c'est une variable, alors il faut écrire le code (if (and (= type_rsx "PROJET") (= config_nom "TE À 3 EMBOITEMENTS") ) (progn (setpropertyvalue bloc1 "AcDbDynBlockPropertyVisibilité1" "Te à 3 emboitements") (setpropertyvalue bloc2 "AcDbDynBlockPropertyVisibilité1" "reseaux pour te a 3 emboitements (PROJET)") ) )
didier Posté(e) il y a 3 heures Posté(e) il y a 3 heures Bonjour @Loïc MICHEL Est-ce qu'on pourrait avoir les blocs "ECLATE_PI_A" et "ECLATE_PI_B". Ils ne sont pas définis dans le dessin et ça plante au moment de l'insertion. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Loïc MICHEL Posté(e) il y a 3 heures Auteur Posté(e) il y a 3 heures il y a 6 minutes, didier a dit : Bonjour @Loïc MICHEL Est-ce qu'on pourrait avoir les blocs "ECLATE_PI_A" et "ECLATE_PI_B". Ils ne sont pas définis dans le dessin et ça plante au moment de l'insertion. Amicalement Bien sur, désolé, je n'avais pas vu qu'il n'apparaissait pas dans le dxg. DESSIN LISP.dwg PI.DCL PILISP.LSP
didier Posté(e) il y a 3 heures Posté(e) il y a 3 heures Bonjour @Loïc MICHEL Je n'ai aucune idée du rendu que vous attendez à la suite de ce programme. Ça aiderait pour vous répondre, car je travaille dans le flou absolu. Ce que je peux dire d'ores et déjà, c'est qu'en plus de la remarque d'Olivier dont il faut tenir compte en supprimant ces parenthèses superflues, vous devriez être rigoureux sur la casse des chaines de caractères, on trouve de tout, des majuscules, des accents... Quand on teste une égalité sur des strings accent, majuscules, espaces et autres fioritures sont à proscrire urgemment ! (= "Maison" "maison") renvoie nil (= "maison" "maison") renvoie T Vous testez des égalités marquées correctes en commentaire alors qu'elles ne le sont pas, ça renvoie nil à chaque passage à cause de la casse. Vous nous faites un aperçu du rendu attendu s'il vous plaît… Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Loïc MICHEL Posté(e) il y a 2 heures Auteur Posté(e) il y a 2 heures il y a 20 minutes, didier a dit : Bonjour @Loïc MICHEL Je n'ai aucune idée du rendu que vous attendez à la suite de ce programme. Ça aiderait pour vous répondre, car je travaille dans le flou absolu. Ce que je peux dire d'ores et déjà, c'est qu'en plus de la remarque d'Olivier dont il faut tenir compte en supprimant ces parenthèses superflues, vous devriez être rigoureux sur la casse des chaines de caractères, on trouve de tout, des majuscules, des accents... Quand on teste une égalité sur des strings accent, majuscules, espaces et autres fioritures sont à proscrire urgemment ! (= "Maison" "maison") renvoie nil (= "maison" "maison") renvoie T Vous testez des égalités marquées correctes en commentaire alors qu'elles ne le sont pas, ça renvoie nil à chaque passage à cause de la casse. Vous nous faites un aperçu du rendu attendu s'il vous plaît… Amicalement Je souhaite réaliser un raccordement à un poteau incendie sous la forme d'une liaison en T inversé, où je pourrai modifier les pièces présentes. Cela influencera la longueur des tuyaux sur l'éclaté, et selon les choix effectués, les blocs pourront se chevaucher de différentes manières. Il y a trois parties modifiables : le réseau de gauche, le réseau de droite, et le haut, qui représente la liaison au poteau incendie. Pour le moment, je voudrais créer un aperçu dans lequel les deux blocs se chevauchent afin d'obtenir le résultat attendu. Le bloc A est un bloc "pièce", tandis que le bloc B est un bloc "réseaux". J'ai séparé ces deux blocs pour limiter le nombre de combinaisons à gérer manuellement. À l'origine, je ne pensais pas que cela prendrait autant de temps, mais finalement, c'est assez long. En réalité, il pourrait y avoir plusieurs variantes, par exemple : un réseau en "projet" en partie haute, et de l'"existant" sur la partie gauche ou droite. MAIS, il est vrai qu'à présent, j'hésite à ne faire cela que sur un seul bloc. L'utilisation du Lisp permettrait surtout, en plus de l'insertion d'un bloc et de son état de visibilité, d'insérer des textes en fonction du point de base (pt1) pour définir le diamètre, la nature du tuyau et le numéro d'éclaté. Cela pourrait grandement me faciliter la création des éclatés.
didier Posté(e) il y a 2 heures Posté(e) il y a 2 heures Bonjour @Loïc MICHEL Désolé, je ne comprends pas. Je ne vois pas du tout comment en arriver là avec vos blocs. C'est quoi ces lettres dans un cercle ? Les points d'insertion ne collent pas (dans ce que je comprends). Est-ce que vous avez regardé du côté de la casse des strings ? Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Loïc MICHEL Posté(e) il y a 1 heure Auteur Posté(e) il y a 1 heure il y a une heure, didier a dit : Bonjour @Loïc MICHEL Désolé, je ne comprends pas. Je ne vois pas du tout comment en arriver là avec vos blocs. C'est quoi ces lettres dans un cercle ? Les points d'insertion ne collent pas (dans ce que je comprends). Est-ce que vous avez regardé du côté de la casse des strings ? Amicalement Bonjour, Désolé pour la confusion. Pour être plus précis, les lettres dans un cercle étaient simplement un exemple utilisé pour la légende d'un projet. Pour l'instant, l'objectif était simplement de tester si l'ajustement fonctionnait correctement. À la fin du programme, je positionnerai tous les différents états de visibilité vers un même point et définirai ensuite le point de base du bloc. Mon programme est conçu éditer des blocs en fonction des choix de l'utilisateur. Chaque état de bloc (selon les paramètres choisis) sera ajusté, et les textes seront ajoutés à des positions fixes par rapport à l'éclaté. Merci pour votre compréhension. Amicalement,
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