Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

OUTIL NETTOYER

11 RÉPONSES 11
Répondre
Message 1 sur 12
elena
5193 Visites, 11 Réponses

OUTIL NETTOYER

Bonjour,

 

Nous sommes à la recherche d’une information concernant l’un des outils sur Autocad 2015, il s’agit de la fonction NETTOYER.

Nous souhaitons savoir pourquoi cette commande ne marche pas sur les cercles ou polylignes contenant un ou des arcs de cercles ?

Quelle solutions proposez-vous pour résoudre ce problème?

Y-at-il une alternative pour nos dessins ?

 

Nous joignons à ce mail un dessin de démonstration de l’effet que nous souhaitons obtenir.

 

Cordialement

 

EC

11 RÉPONSES 11
Message 2 sur 12
Olivier.R
en réponse à: elena

Bonjour elena et bienvenu sur le forum,

 

LA commande nettoyer utilise (sauf erreur de ma part) une image blanche pour masquer les objets. Sur Autocad, les images ne peuvent avoir de contour en arc.

Tu peux facilement remplacer la commande nettoyer par une hachure pleine en couleur 255,255,255. Cela t'éviteras en plus certain bug dûs aux objets nettoyer.

 

Olivier

Message 3 sur 12
elena
en réponse à: Olivier.R

Merci Olivier pour votre réponse très rapide !

 

Je connaissais effectivement cette option qui est une bonne alternative mais idéalement j’aimerais continuer à utiliser la commande Nettoyer,

donc voici ma dernière question, y-a-t-il un moyen de transformer un cercle ou arc de cercle en vrai polyligne ?

Cela permettrait éventuellement d’utiliser ce cercle transformé avec la commande Nettoyer ?

 

Merci beaucoup pour vos réponse,

Ce système de forum est bien pratique !

Cordialement,

Message 4 sur 12
Kevin_Megel
en réponse à: elena

tu peux directement faire ton cercle ou ton arc de cercle avec une polyligne

 

Dsl j'avais pas lu la premier demande.... donc mon commentaire n'as aucune utilité !!!

Kevin Megel
Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton Accepter la solution.

EESignature

Je suis un simple utilisateur, je ne travaille pas pour Autodesk

Message 5 sur 12
kwizats_haderack
en réponse à: elena

Bonjour Elena,

les objets nettoyer sont très strictes, ils refusent les entités particulières tels que "cercle, arc de cercle, spline".

Tu es obligé, comme tu l'as compris, de les transformer en polyligne.

Il existe des Lips qui feront le travail de transformation objet par objet.

Personnellement, je préfère le Lisp que j'ai et qui transforme n'importe quelle forme ou objet en entité "nettoyer".

Si tu le désires, je peux te le donner.

@+

Bien cordialement / Best regards

----------------------------------------------------

Erwan ( FRENCH AUTOCAD M.E.P CAD/BIM MANAGER )
Message 6 sur 12
Olivier.R
en réponse à: elena

Si tu as bien une version complète, il doit être possible de faire quelques chose en lisp.

Mais comme déjà dit je ne suis pas sûr que cela soit la meilleur idée au vu des bug sur les NETTOYER.

 

Olivier

Message 7 sur 12
CADaSchtroumpf
en réponse à: elena

Bonjour,

 

Pour des cercle ou des polyarc, on pourrait envisager un truc comme ceci pour continuer à utiliser des WIPEOUT.

Cela discretise en segment les courbes.

 

(defun def_bulg_pl (ls lb flag_closed / ls lb rad a l_new)
  (if (not (zerop flag_closed)) (setq ls (append ls (list (car ls)))))
  (while (cadr ls)
    (if (zerop (car lb))
      (setq l_new (append l_new (list (car ls))))
      (progn
        (setq
          rad (/ (distance (car ls) (cadr ls)) (sin (* 2.0 (atan (abs (car lb))))) 2.0)
          a (- (/ pi 2.0) (- pi (* 2.0 (atan (abs (car lb))))))
        )
        (if (< a 0.0) (setq a (- (* 2.0 pi) a)))
        (if (or (and (< (car lb) 0.0) (> (car lb) -1.0)) (> (car lb) 1.0))
          (setq l_new (append l_new (reverse (cdr (reverse (bulge_pts (polar (car ls) (- (angle (car ls) (cadr ls)) a) rad) (car ls) (cadr ls) rad (car lb)))))))
          (setq l_new (append l_new (reverse (cdr (reverse (bulge_pts (polar (car ls) (+ (angle (car ls) (cadr ls)) a) rad) (car ls) (cadr ls) rad (car lb)))))))
        )
      )
    )
    (setq ls (cdr ls) lb (cdr lb))
  )
  (append l_new (list (car ls)))
)
(defun bulge_pts (pt_cen pt_begin pt_end rad sens / inc ang nm p1 p2 lst)
  (setq
    inc (angle pt_cen (if (< sens 0.0) pt_end pt_begin))
    ang (+ (* 2.0 pi) (angle pt_cen (if (< sens 0.0) pt_begin pt_end)))
    nm (fix (/ (rem (- ang inc) (* 2.0 pi)) (/ (* pi 2.0) 36.0)))
  )
  (repeat nm
    (setq
      p1 (polar pt_cen inc rad)
      inc (+ inc (/ (* pi 2.0) 36.0))
      lst (append lst (list p1))
    )
  )
  (setq
    p2 (polar pt_cen ang rad)
    lst (append lst (list p2))
  )
  (if (< sens 0.0) (reverse lst) lst)
)
(defun c:wipe_polyarc ( / jspl nbr ent dxf_ent typent name_layer closed lst l_bulg e_next dxf_next oldlayer oldosm)
  (princ "\nChoix des polylignes ou cercle à nettoyer: ")
  (setq
    jspl (ssget '((0 . "*POLYLINE,CIRCLE") (-4 . "<NOT") (-4 . "&") (70 . 124) (-4 . "NOT>")))
    nbr 0
  )
  (cond
    (jspl
      (setq oldlayer (getvar "clayer") oldosm (getvar "osmode"))
      (setvar "osmode" 0)
      (setvar "cmdecho" 0)
      (command "_.ucs" "_world")
      (repeat (sslength jspl)
        (setq
          typent (cdr (assoc 0 (setq dxf_ent (entget (setq ent (ssname jspl nbr))))))
          name_layer (cdr (assoc 8 dxf_ent))
        )
        (cond
          ((eq typent "LWPOLYLINE")
            (setq
              closed (boole 1 (cdr (assoc 70 dxf_ent)) 1)
              lst (mapcar '(lambda (x) (trans x ent 1)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent)))
              l_bulg (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 42)) dxf_ent))
              lst (def_bulg_pl lst l_bulg closed)
            )
          )
          ((eq typent "POLYLINE")
            (setq
              closed (boole 1 (cdr (assoc 70 dxf_ent)) 1)
              e_next (entnext ent)
            )
            (while (= "VERTEX" (cdr (assoc 0 (setq dxf_next (entget e_next)))))
              (if (zerop (boole 1 223 (cdr (assoc 70 dxf_next))))
                (setq
                  lst (cons (trans (cdr (assoc 10 dxf_next)) ent 1) lst)
                  l_bulg (cons (cdr (assoc 42 dxf_next)) l_bulg)
                )
              )
              (setq e_next (entnext e_next))
            )
            (setq
              lst (reverse lst)
              l_bulg (reverse l_bulg)
              lst (def_bulg_pl lst l_bulg closed)
            )
          )
          ((eq typent "CIRCLE")
            (setq
              lst
                (bulge_pts
                  (trans (cdr (assoc 10 dxf_ent)) ent 1)
                  (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) 0.0 (cdr (assoc 40 dxf_ent)))
                  (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) (- (* 2.0 pi) (/ (* pi 2.0) 36.0)) (cdr (assoc 40 dxf_ent)))
                  (cdr (assoc 40 dxf_ent))
                  1
                )
              lst (append lst (list (car lst)))
              closed 1
            )
          )
        )
        (cond
          ((and lst (not (zerop closed)))
            (setvar "clayer" name_layer)
            (command "_.pline")
            (foreach n lst (command n))
            (command "_close")
            (command "_.wipeout" "_polyline" (entlast) "_yes")
          )
        )
        (setq nbr (1+ nbr) lst nil l_bulg nil)
      )
      (command "_.ucs" "_previous")
      (setvar "clayer" oldlayer)
      (setvar "osmode" oldosm)
      (setvar "cmdecho" 1)
    )
    (T (princ "\nSélection vide"))
  )
  (prin1)
)

 

 

 

 

 

Message 8 sur 12
_gile
en réponse à: CADaSchtroumpf

Salut,

 

On peut aussi trouver obj2wipeout.lsp sur cette page.



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 9 sur 12
Kevin_Megel
en réponse à: _gile

Smiley MDR il ne manque plus que BraudPat, pour une belle brochette de pointure sur un sujet ! Et ben t'est bien entouré elena Smiley MDR

Kevin Megel
Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton Accepter la solution.

EESignature

Je suis un simple utilisateur, je ne travaille pas pour Autodesk

Message 10 sur 12
kwizats_haderack
en réponse à: _gile

C'est bien le même lisp que Giles que je voulai mettre à disposition.

Attention toute fois, j'avais beaucoup de soucis avec ce lisp sur Autocad 2014.

@+

Bien cordialement / Best regards

----------------------------------------------------

Erwan ( FRENCH AUTOCAD M.E.P CAD/BIM MANAGER )
Message 11 sur 12
braudpat
en réponse à: Kevin_Megel

 

Hello

 

Pour une fois que braudpat ne dit rien !?

 

Cordialement, Patrice

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Message 12 sur 12
Kevin_Megel
en réponse à: braudpat

ben pour une fois que tu dit rien , on remarque ton absence Smiley MDR

Kevin Megel
Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton Accepter la solution.

EESignature

Je suis un simple utilisateur, je ne travaille pas pour Autodesk

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report