Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

Est-il possible de convertir ou transformer un solide en une polyligne ou en plusieurs lignes qui en feraient le contour?

Si oui, quelle est la méthode?

 

Merci d'avance.

 

Je reste à disposition si vous voulez des précisions.

 

Damien

Rémois

Posté(e)

Solide 3D ou solide 2D, forme pleine ?

 

Evidemment, pour la 3D, y a beaucoup de méthode mais ce sont des méthodes de projection. Il faudra donc choisir les "points de vue". Et APLANIRGEOM, FLATTEN et autres astuces à base de DXB.

 

[Edité le 15/5/2009 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

ce sont des solides 2D,

 

je précise qu'il y a également des hachures dans mes plans que je souhaite conserver dans l'état,

donc modifier la variable FILLMODE n'est pas la bonne solution.

 

Merci quand-même Trambler

Rémois

Posté(e)

Y a déjà eu un lisp qui trainait mais le retrouver tout seul ici va être balaise car le mot "SOLID" (code DXF) entre guillemet ne fonctionne pas en recherche CADxp, j'ai essayé.

 

Moi, c'est Tramber

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

 

Hello

 

Je vois une mthode assez simple :

 

Exporter les SOLIDs au format WMF

Importer le fichier WMF

Decomposer (explode)

 

Qu'en pensez vous ?

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Un truc agée qui traine dans ma biblio...

Essayes, si ça fonctionne

 

(defun C:SOLID2Dto3DPOLY ( / js ind l_js e_name ent dxf_10 dxf_11 dxf_12 dxf_13)
(setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384)))
(setvar "cmdecho" 0)
(setq js (ssget "_X" '((0 . "SOLID"))) ind 0)
(cond
	(js
		(setq l_js (sslength js))
		(while (setq e_name (ssname js ind))
			(setq
				ind (1+ ind)
				ent (entget e_name)
				dxf_10 (trans (cdr (assoc 10 ent)) e_name 0)
				dxf_11 (trans (cdr (assoc 11 ent)) e_name 0)
				dxf_12 (trans (cdr (assoc 12 ent)) e_name 0)
				dxf_13 (trans (cdr (assoc 13 ent)) e_name 0)
				dxf_210 (cdr (assoc 210 ent))
			)
			(if (not (equal dxf_12 dxf_13 1E-13))
				(command "_.3dpoly"
					(trans dxf_10 0 1)
					(trans dxf_11 0 1)
					(trans dxf_13 0 1)
					(trans dxf_12 0 1)
					"_close"
				)
				(command "_.3dpoly"
					(trans dxf_10 0 1)
					(trans dxf_11 0 1)
					(trans dxf_12 0 1)
					"_close"
				)
			)
		)
		(command "_.erase" js "")
		(princ (strcat "\n" (itoa ind) " entités SOLID converties en 3DPOLY."))
	)
	(T (prompt "\nAucune sélection valide."))
)
(setvar "cmdecho" 1)
(prin1)
)

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

Posté(e)

Salut,

 

Je pensais avoir déjà fait ça, mais je ne le retrouve plus.

Un nouveau petit LISP vite fait :

 

;; SOLID2PLINE (gile)
;; transforme les solides 2d sélectionnés en polylignes fermées

(defun c:Solid2Pline (/ ss n ent elst elv)
 (princ "\nSélectionnez les solides ou : ")
 (if
   (setq ss (cond ((ssget '((0 . "SOLID"))))
	   (T (ssget "_X" '((0 . "SOLID"))))
     )
   )
    (while (setq ent (ssname ss
		      (setq n (if n
				(1+ n)
				0
			      )
		      )
	      )
    )
      (setq elst (vl-remove-if
	    '(lambda (x) (member (car x) '(-1 0 5 100 39)))
	    (entget ent)
	  )
     elv  (cadddr (assoc 10 elst))
      )
      (entmake
 (append
   (list
     '(0 . "LWPOLYLINE")
     '(100 . "AcDbEntity")
     '(100 . "AcDbPolyline")
     (assoc 67 elst)
     (assoc 410 elst)
     (assoc 8 elst)
   )
   (if (equal (cdr (assoc 12 elst)) (cdr (assoc 13 elst)) 1e-9)
     (list
       '(90 . 3)
       '(70 . 1)
       (cons 38 elv)
       (assoc 10 elst)
       (cons 10 (cdr (assoc 11 elst)))
       (cons 10 (cdr (assoc 12 elst)))
       (assoc 210 elst)
     )
     (list
       '(90 . 4)
       '(70 . 1)
       (cons 38 elv)
       (assoc 10 elst)
       (cons 10 (cdr (assoc 11 elst)))
       (cons 10 (cdr (assoc 13 elst)))
       (cons 10 (cdr (assoc 12 elst)))
       (assoc 210 elst)
     )
   )
 )
      )
      (entdel ent)
    )
 )
 (princ)
)

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

Posté(e)

ça fonctionne et c'est exactement ce que je voulais

 

merci beaucoup gile

 

CADxp c'est vraiment magique !!! ou plus exactement, les personnes de ce site sont vraiment compétentes car efficaces et rapides

 

bon je vous laisse, je vais utilisé mon nouveau petit lisp avec autant de plaisir que devant un bon Fifa

Rémois

Posté(e)

 

Hello

 

Je viens de tester les 2 routines sous MAP 2006 et elles fonctionnent bien ! :)

 

Cependant j'ai un faible pour la routine de Gilles car elle permet de faire une selection contrairement à celle de Bonuscad qui traite automatiquement TOUS les SOLIDs

 

Je suis un peu ridicule avec ma manipulation "bricolo" !? :exclam:

 

Bon WE, Le Decapode

 

Autodesk Expert Elite Team

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é