Aller au contenu

Encore avec mes ssget .....


Messages recommandés

Posté(e)

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

Posté(e)

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 """""

Posté(e)

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

Posté(e)

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 ??????

 

Posté(e)

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

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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

Posté(e)

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???????

 

Posté(e)

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

Posté(e)

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

  • 2 mois après...
Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité