LUDWIG Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 [b] [u] ......... J'ose ..........[/u][/b]Savez-vous s'il a déjà été développé un programme qui puisse "reconstruire" des blocs. Exemple : un dessin a été construit avec des cercles et une croix au milieu en guise de spot. En sélectionnant le bloc a inséré, les objets à remplacer (cercle + croix) et son point d'insertion, le programme reconnaitrait toute les occurences de cercle + croix pour les remplacer par le bloc adéquat... Je sais que c'est balèze, ce que je demande, mais si ça a déjà été fait, je suis preneur... Autocad 2021 - Revit 2022 - Windows 10
Invité Sylvainhinard Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 Bonjour, A mon avis va voir dans : Accueil du Forum > LISP et Visual LISP > Débuter en LISP > Remplacement de cercles par des blocs Je pense que tu auras réponse à une partie de ta question @+
Serge Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 Ludwig, D'ici 30 minutes, tu iras sur notre site http://www.cadnovation.com/frDans la sectionTRUCS, SUPPORT, ROUTINES , tu cliqueras sur Plus puis de là il y aura un routine pour remplacer les blocs. Ce sera un fichier à extension fas. Tu le charge comme n'importe quel fichier lsp. Voici ce que ça dit au chargement: La variable eacu_rb::oldBlocsLayerName peut être définie pourchoisir le nouveau calque où seront transférés les anciens blocs.Par défaut, ce calque se nomme VieuxBlocksExemple: (setq eacu_rb::oldBlocsLayerName "VieuxBlocks")Tapez RB pour remplacer les blocs. Serge
Serge Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 À moi, J'aurais du avoir cliqué sur "Désactiver les smileys"Le message ne contient pas de petits bonhommes Serge
Pako Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 Excuse moi, Serge Je n'ai pas trop compris le fonctionnement de ta routine ! :casstet: On retrouve une commande dans les Express Tools appellé : blockreplaceEst-ce c'est le même fonction que ton programme ? Merci ! ;) l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Serge Posté(e) le 15 décembre 2004 Posté(e) le 15 décembre 2004 Pako, Excuse moi, je n'avais pas décrit le fonctionnement. Ma routine permet d'insérer un bloc par-dessus un autre et le remplacement se fait selon l'apparence que les 2 blocs ont au moment d'être choisi, ce qui signifie que je tiens compte de l'angle de rotation relatif, de l'échelle relative et aussi du choix d'un calque pour y laisser les vieux blocss pour fins de comparaiso, je transfère les attributs bloc par bloc et finalement, le remplacement est sélectif. Ah oui, les échelles d'insertion peuvent être miroir ou Y différent de Y. ReplaceBlock des express ne fait que recopier la définition d'un bloc dans un autre, ce qui prend à peu près 10 lignes de codes à faire. Exemple d'utilisation:Commande: RB Calque pour les anciens blocs : Enter Sélectionnez la zone ayant les 2 blocs: Sélection par Crossing Choix des objets: Spécifiez le coin opposé: 2 trouvé(s) Choix des objets: Enter Attention: Les 2 blocs n'ont pas la même échelle.Vous pouvez interrompre la routine et faire des validations avant de continuer.Interrompre la routine [Oui/Non] : NonrChoisissez les blocs à remplacer [Tout/Sélection] : Enter Note: j'avais étaeint le flag pour l'effacement des vieux blocs. Je vais mettre à jour le site d'ici 10 minutes. Désolé.Serge
Pako Posté(e) le 16 décembre 2004 Posté(e) le 16 décembre 2004 Merci la description ! Une dernière question : je transfère les attributs bloc par bloc Que ce passe-t-il si le nouveau block a 3 attributs et l'ancien n'avait que 1 ou l'inverse ? A+ l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
LUDWIG Posté(e) le 16 décembre 2004 Auteur Posté(e) le 16 décembre 2004 SERGEAh oui, c'est une version plus évoluée du block replace si je comprends bien : conservation des échelles, rotation, etc... C'est bien utile ! Par contre, je ne comprend pas la nouvelle position du point d'insertion... et les anciens blocks ne sont pas conservés ? SylvainhinardRemplacement de cercles par des blocs : c'est mon collègue qui l'a posté ! Mais je cherche quelquechose "plus évolué" qui :1 - puisse remplacer plusieurs objets par 1 bloc ("cercle + 2 traits intérieurs" par 1 bloc par ex.)2 - demande la sélection de ces objets à l'écran : les entités à remplacer (cercle + 2 traits, ou autres entités), le point d'insertion, le bloc de remplacement (ou constitution du bloc à partir des entités selectionnées précedemment et du point d'insertion). Je suis sûr que ça pourrait intéresser beaucoup de monde, mais je suppose que ça n'existe pas (et que ce serait un usine à gaz à faire). Autocad 2021 - Revit 2022 - Windows 10
bonuscad Posté(e) le 16 décembre 2004 Posté(e) le 16 décembre 2004 Je suis sûr que ça pourrait intéresser beaucoup de monde, mais je suppose que ça n'existe pas (et que ce serait un usine à gaz à faire). Je te le fait pas dire, le problème majeure n'est pas de récuperer les entités, mais surtout le classement de celles-ci par rapport à leur positionnement entre elles (savoir si telle entité avec un XYZ et un alpha de rotation doit aller avec une autre entité positionnée a tel XYZ et alpha) en plus si des attributs doivent si ajouter je te dis pas la prise de tête.Bien que je pense que ce ne soit pas irréalisable, cela demanderait un temps de traitement très long (surtout en Lisp). Cela me fait penser un peu a un programme de triangulation (maillage de point 3D), je n'en ai jamais vu d'efficace en lisp. A mon avis tu peux tirer un trait sur ce genre de souhait. (bien que l'idée était bonne) ;) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 16 décembre 2004 Posté(e) le 16 décembre 2004 Ah, oui, c'est une routine qui sert à substituer un bloc par un autre. Très utileSi tu le permets, Serge, il manque un (vl-load-com) dans ta routine (eh oui, je suis encore en 2000 ;)) Je pensais que c'était, comme demandais notre ami Ludwig, une routine qui sert à recomposer un bloc qui à été décomposé par une comparaison dans la table des blocs. Là j'aurai dit, Monsieur s'il vous plait :cool: @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Serge Posté(e) le 16 décembre 2004 Posté(e) le 16 décembre 2004 Ludwig,Si je te comprend bien, tu désires un UnExplodeBlock. Est-ce bien cela ?Pour le point d'insertion, c'est un bug que j'ai corrigé ce matin. Je venais tout juste de terminer la routine quand j'ai vu votre demande. C'est ce qui explique ce petit bug. Patrick_35,Ce sera fait. Pako,Le valeurs d'attributs par défaut du nouveau bloc sont d'abord prise en compte puis je fais le tour de l'ancien bloc pour savoir s'il existe des anciennes valeurs qui deviendraient prioritaires. L'ordre des attributs n'a aucune importance, pouvu qu'il n'y ait pas 2 fois le même nom de tag dans le même bloc. Normalement, ce programme est offert à ceux qui ont le MVPort. Je vais donc en faire une version 100% fonctionnelle mais qui popera une boite de dialogue tous les 3 ou 5 blocs, question de pas déplaire à ceux qui ont payé la version pleine. J'enlèverai cet irritant dans un an, si quelqu'un me le rappelle :-) Serge
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