cadpolo Posté(e) le 1 novembre 2005 Posté(e) le 1 novembre 2005 Salut à vous .....qui me lisez ............. :) Je suis toujours avec mes codes de filtres ça avance, lentement mais .....Bon j'ai comme d'habitude une petite question pour vous ?????? :casstet: [surligneur] (defun c:reg (/)(setq ssel2 (ssget "_X" (list (cons 0 "region"))))(setq n 0)(setq Long_sel (sslength ssel2))(repeat Long_sel(setq ent_last ( ssname ssel2 n)) (command "-fhach" "P" "ar-sand" "0.1" "" "S" ent_last "" "" )(setq n(1+ n)) );;fin de repeat );;fine defun[/surligneur] L'idée est de palier au pb de hachure d'un trop grand nombre de hachure .....En selectionnant un à un les regions et en leurs appliquant directement la hachure ....Mais MESSAGE D'ERREUR : Impossible d'hachurer ...... Encore merci pour la réponse si vou l'avez ..... :D
cadpolo Posté(e) le 1 novembre 2005 Auteur Posté(e) le 1 novembre 2005 Désolé ... Et c'est normal ....qu'il ne voulait pas hachuer car ... (setq n(+ 1 n)) au lieu de (setq n(1+ n)) pas pareil .... mais sur les 22 régions selectionnées seul 5 sont traitées ..... Par contre je """ bute """""
(gile) Posté(e) le 1 novembre 2005 Posté(e) le 1 novembre 2005 Salut, je ne suis pas sûr, mais il me semble que sur certaines versions (2002 par exemple) on ne pouvait hachurer que les entités entièrement visibles à l'écran. Essaye de faire un (command "_zoom" "_extents") au début de ton lisp et (comand "_zoom" "_previous") à la fin. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
cadpolo Posté(e) le 1 novembre 2005 Auteur Posté(e) le 1 novembre 2005 Salut gile ...... Merci pour ta reponse ..... Mais cela ne marche pas ........Mais y a t'il un autre moyen pour selectionne une entite et la traité dans la foulee ??????
(gile) Posté(e) le 1 novembre 2005 Posté(e) le 1 novembre 2005 Désolé, je ne vois pas. De même, je ne comprends pas pour (setq n (1+ n)) ou (setq n (+ 1 n)), les deux devraient fonctionner pareilllement. Ton code me semble correct, mais je ne peux pas l'essayer pour l'instant. À plus... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 2 novembre 2005 Posté(e) le 2 novembre 2005 Je ne trouve pas d'erreur dans ton code. Peut-être as-tu des régions non-coplanaires... Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 2 novembre 2005 Posté(e) le 2 novembre 2005 Ton code fonctionne dans un dessin test "bateau". Pour un débug:Je suggère que tu essayes en 1er lieu d'utiliser le motif "SOLID" (tu contourneras le problème de l'échelle des hachures)En effet des hachures trop ou pas assez dense peut mettre la commande hachure en erreur. Un conseil qui peut avoir son importance sur le comportement du code:Déclares tes variables globales et locales; (defun c:fonction ( arg1 / var1 var2 var3....)En effet ssget peut refuser de fonctionner au delà de 128 jeux de collections d'objets déclaré et non-remis à nil. (Si tu utilises durant la même session divers lisp qui auraient le même défaut, la limite peut être vite atteinte) Je n'est pas fait de test, mais peut être des contours constitués avec des morceaux courts d'entités complexes style Spline Ellipse?!! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
cadpolo Posté(e) le 2 novembre 2005 Auteur Posté(e) le 2 novembre 2005 Salut à vous ...... Merci pour toutes ces explcations ......Effectivement je vais essayer de rajouter la variable maxHatch "1000000" pour voir ce que cela dit ............effectivement tu as raison je devrais déclaré mes variables, mais parce que le code n'est pas terminé ni complètement strcuturé .......Et pour répondre à Tramber et gile, j'ai tout simplement dessinné des lignes, puis un contour avec la polyligne puis une region ....... Mais normalement, ce code est fait pour passer en revue chaque régions faisant partie du groupe de selection en lui appliquant directement la hachures ......Donc des petits espace pour eviter les hachures trop denses ...Non???????
(gile) Posté(e) le 2 novembre 2005 Posté(e) le 2 novembre 2005 Salut, J'ai essayé ton code aujourd'hui, çà a marché sur 24 régions, à condition d'ajuster l'échelle des hachures à la taille du dessin (sinon messsage d'erreur style "densité des hachures..."). As tu essayé ce que propose Bonuscad (le motif "SOLID") ?Tu saurais déjà si ton problème est un problème d'échelle ou non. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
cadpolo Posté(e) le 2 novembre 2005 Auteur Posté(e) le 2 novembre 2005 Salut gile .....Ca marche avec le type solide .....Mais pour les dots ou ar-sand il ne traite pas toutes les regions .......Mais je dois m'y remettre ........... mecrci.....
thierryd Posté(e) le 3 janvier 2006 Posté(e) le 3 janvier 2006 bonjour à tous, j'essaie de comprendre le lisp en vous lisant et il se trouve qu'en essayant ton lisp j'ai la réponse suivante: Commande: _appload reg.lsp correctement chargé(s) Commande:Commande:Commande: reg; erreur: type d'argument incorrect: lselsetp nil lselsetp nil n'apparait pourtant pas dans ton lisp, qu'est ce que veut me dire autocad? au fait j'ai autocad2006 cordialement
bonuscad Posté(e) le 3 janvier 2006 Posté(e) le 3 janvier 2006 Bonjour, Crée des régions dans ton dessin.Le code est sommaire et il ne vérifie pas si le jeu de sélection est vide.Ce qui doit être le cas pour toi, d'où le message d'erreur sur une sélection vide. la variable ssel2 se retrouve à "nil" (rien, vide) et bloque pour la suite. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
thierryd Posté(e) le 3 janvier 2006 Posté(e) le 3 janvier 2006 merci bonuscad, bon ben sur 2006 j'y arrive avec 68 régions. au plaisir de vous lire tous
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