Aller au contenu

union automatique des solides 3d


Messages recommandés

Posté(e)

Salut et bienvenue,

 

Voilà un petit LISP qui permet ça

 

;; S3D
;; Efectue une soustraction de régions ou solides 3d sans faire d'union

(defun c:s3d (/ ss1 ss2 n lst)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-activeDocument (vlax-get-acad-object)))
 )
 (princ " Sélectionnez les solides et les régions à enlever de ..")
 (if
   (setq ss1 (ssget '((0 . "REGION,3DSOLID"))))
    (if (and
   (princ "Sélectionnez les solides et les régions à soustraire ..")
   (setq ss2 (ssget '((0 . "REGION,3DSOLID"))))
 )
      (progn
 (vla-StartUndoMark *acdoc*)
 (repeat (setq n (sslength ss2))
   (setq
     lst (cons (vlax-ename->vla-object (ssname ss2 (setq n (1- n))))
	       lst
	 )
   )
 )
 (repeat (setq n (sslength ss1))
   (setq obj (vlax-ename->vla-object (ssname ss1 (setq n (1- n)))))
   (foreach o lst
     (and (= (vla-get-ObjectName obj) (vla-get-ObjectName o))
	  (vla-Boolean obj acSubtraction (vla-copy o))
     )
   )
 )
 (mapcar 'vla-delete lst)
 (vla-EndUndoMark *acdoc*)
      )
    )
 )
 (princ)
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut,

 

Je ne vois pas à quoi peut-être due l'erreur, chez moi ça marche très bien.

Essaye de faire un nouveau copier/coller du code (tout le code, rien que le code), de le recharcharger et de le relancer.

Sinon, quelle version d'AutoCAD utilises-tu ?

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é