Aller au contenu

Semis de points aleatoire


Messages recommandés

Invité guigouw
Posté(e)

Bonjour,

 

Grâce/ à cause de mon métier, j'ai régulièrement à remplir " à la main" une zone définie avec différents blocs. Tache relativement... fastidieuse :mad2:

 

Je me tourne donc vers vous pour savoir si ils existe une "commande miraculeuse" qui me permettrais de générer à l'intérieure d'une polyligne fermée un semis de points aléatoire (pas une réseau orthogonal/polaire bête et méchant) ou encore mieux d'un bloc.

 

S'il faut passer par la creation d'un Lisp... Auriez vous une ou deux bonnes adresses de tutos pour se former?

 

Merci d'avance pour vos réponses :)

Posté(e)

Hello et bienvenue,

 

Si je comprend bien c'est une zone avec des points du genre hachure ?

Ce que je fais moi dans ces cas là, c'est que je mets plusieurs fois la hachure ARSAND dans la zone, avec des échelles différentes, cela fait une sorte d'irégularité...

Je ne sais pas si cela te convient ?

 

Amitiés.

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

coucou

 

dire que ton message n'est pas clair est une tournure de phrase euphémique

 

qu'est-ce que tu veux faire précisément ?

 

détecter le contour d'une polyligne fermée

puis la remplir avec des points (points AutoCAD ou blocs ?)

avec une densité pré-établie

comment choisir la position des points à créer ?

une distance minimum entre chaque ?

une différence de coordonnées ?

un nombre de points tout simplement ?

 

tu vois que pour te répondre on a besoin de plus d'éléments

que tu consens à en donner dans ton énoncé.

 

amicalement

 

Posté(e)

Bonsoir,

 

Dans le menu Express, il y a SuperHatch

c'est un peu lourd et pas évident à comprendre comment ça marche, mais ça fait de jolie chose.

 

Olivier

Support Technique Covadis

Posté(e)

coucou

 

tant d'efforts pour tenter de comprendre une question

et chacun vient proposer une solution

et et et ....

 

celui qui a posé la question ne vient même pas préciser la direction de recherche

ah !!! c'est de pire en pire l'internénétte

 

mal luné ce matin le garçon :mad:

Posté(e)
mal luné ce matin le garçon :mad:

 

Relax l'ami, ça passera, comme toujours... ;)

Mais c'est vrai que ceux qui posent les questions pourraient quand-même suivre les réponses d'un peu plus près. Moi je serais même impatient de savoir... :o

 

Relax :cool:

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Invité guigouw
Posté(e)

oupala.. navré d'avoir pris un week end prolongé loin de mon PC ^^'

 

En fait cette manipulation à pour but de pré implanter des boisement sur une maquette virtuelle.

La méthode de la hachure ne fonctionnera pas à ma connaissance.

 

Pour les précisions, tardive.... mea culpa...

 

Il s'agit bien d'implanter automatiquement des points autocad (mais si c'est possible de le faire directement avec des blocs, je suis preneur :) )

à l'intérieure d'une polyligne close.

 

Effectivement il faudrait paramétrer une distance entre les points (même fixe pourvu qu'elle fasse au mini 10m...)

 

Quand à la position, hé bien, aléatoire en X/Y mais à 0 en Z

 

 

 

Sinon merci pour la rapidité de vos réponses et pour la bienvenue ^^

Je ne m'éloignerais plus de mon PC, pour le moment, promis :P

Posté(e)

La méthode de la hachure ne fonctionnera pas à ma connaissance.

 

Pourtant la réponse n°1 de Dinosor me semble adaptée !?!?

 

Le motif AR-SAND, pour peu que tu le répète avec une échelle différente et une rotation donne bien un aspect aléatoire.

 

mais si c'est possible de le faire directement avec des blocs, je suis preneur

 

Si tu décompose (_.EXPLODE) ce motif, tu obtiens des lignes de longueur nulle.

 

En adaptant rapidement un lisp publié ici, voilà ce que ça pourrait donner.

La ligne en rouge est à adapter à tes soins, nom du bloc, échelle d'insertion et rotation.

 

(defun c:del_line_by_dist ( / dis_ref js nb_ent n key ent dxf_ent lst dxf_10 dxf_11 dis_ent)
 (initget 69)
 (setq dis_ref (getdist "\nSaisir la distance de référence des lignes à supprimer: "))
 (initget "Tout Selection _All Select")
 (if (eq (getkword "\nAppliquer à [Tout/Selection] : ") "Select")
   (setq js (ssget '((0 . "LINE,LWPOLYLINE"))))
   (setq js (ssget "_X" '((0 . "LINE,LWPOLYLINE"))))
 )
 (cond
   (js
     (setq nb_ent 0  n -1)
     (initget "< <= = >= >")
     (setq key (getkword "\nChoix du test à appliquer '<' '<=' '=' '>=' '>'? défaut '<=': "))
     (if (not key) (setq key "<="))
     (repeat (sslength js)
       (setq
         ent (ssname js (setq n (1+ n)))
         dxf_ent (entget ent)
       )
       (cond
         ((eq (cdr (assoc 0 dxf_ent)) "LINE")
           (setq
             dxf_10 (cdr (assoc 10 dxf_ent))
             dxf_11 (cdr (assoc 11 dxf_ent))
           )
         )
         ((and
           (eq (cdr (assoc 0 dxf_ent)) "LWPOLYLINE")
           (eq (cdr (assoc 90 dxf_ent)) 2)
          )
           (setq
             lst (mapcar '(lambda (x) (trans x ent 1)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent)))
             dxf_10 (car lst)
             dxf_11 (cadr lst)
           )
         )
         (T (setq dxf_10 nil dxf_11 nil))
       )
       (if (and dxf_10 dxf_11)
         (progn
           (setq dis_ent (distance (list (car dxf_10) (cadr dxf_10)) (list (car dxf_11) (cadr dxf_11))))
           (if ((eval (read key)) dis_ent dis_ref)
             (progn
               (entdel ent)
               [color=red](command "_.insert" "rond" "_none" (trans dxf_10 0 1) 1 1 0.0)[/color]
               (setq nb_ent (1+ nb_ent))
             )
           )
         )
       )
     )
     (print nb_ent) (princ " Ligne(s) ont été effacées!.")
   )
   (T (princ "\nAucune ligne trouvée!"))
 )
 (prin1)
)

Exemple d'exécution du lisp:

Commande: DEL_LINE_BY_DIST

Saisir la distance de référence des lignes à supprimer: 0

Appliquer à [Tout/Selection] :Validez l'option "Tout" par défaut

Choix du test à appliquer '<' '<=' '=' '>=' '>'? défaut '<=': =

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Invité guigouw
Posté(e)

:o

Je m'en vais essayer ca dès que possible.

 

Je ne savais pas qu'une ligne de longueur nulle pouvait être assimilée à un point d'ou mon scepticisme de l'utilisation des hachures.

 

En tout cas merci beaucoup :)

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é