Aller au contenu

Splines, mon éternel problème!!!!


Messages recommandés

Posté(e)

Rappel :

Je boss sur machine de découpe CNC et celle ci ne suporte pas les splines

Une des solution trouvée est d'enregistré le fichier dans une des verssion les plus ancienne d'acad ce qui décompose automatiquement les splines en segment de droite

 

Mon problème:

Ceci reste valable pour des petites choses simple MAIS OULALA GROS PROBLEME POUR DES FICHIERS PLUS COMPLEX comportant de multiple élément, cette méthode génère des fichiers ayant un poid beaucoup trop lourd pour ma bécanne

 

Pour etre plus clair:

Une image de base convertie en dxf par un très bon logiciel mais qui génère énormément de splines (poid = 240Ko pour exemple)

J'enregistre donc le fichier en DXF/R12 ce qui décompose ces splines en segment de droite mais hèlas cette méthode engendre un fichier beaucoup plus gros (poid =2,2 Mo pour exemple)

 

Y A T'IL QUELQU'UN QUI POURAIT M'AIDER A RESOUDRE CE PROBLEME ?

MERCI A TOUS

Posté(e)

Change de machine CNC :cool:

 

Blague à part, enregistrer en R12 est la meilleure méthode.

 

Des programmes peuvent exister pour transformer des splines en lignes mais il faudra faire attention à la précision.

 

Les splines que tu récupères sont déjà peut-être trop complexes ?

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

Bonjour Néné

 

Bonne année à Toi avec cette routine

je n'en suis pas l'auteur, mais tu à l'air tellement embêté ...

 

 

(defun C:E2PL ( / ent typent dxf_ent obj_vlax param_start param_end perim_obj pt_start pt_end res_track flag_ucs last_e old_osmd old_pdmd l_pt)

(while (null (setq ent

(entsel

"\nChoix de la Spline ou Ellipse à convertir en polyligne: "

) ;_ Fin de entsel

) ;_ Fin de setq

) ;_ Fin de null

) ;_ Fin de while

(setq typent (cdr (assoc 0 (setq dxf_ent (entget (car ent))))))

(cond

((or (eq typent "SPLINE") (eq typent "ELLIPSE"))

(vl-load-com)

(setq

obj_vlax (vlax-ename->vla-object (car ent))

param_start (vlax-curve-getStartParam obj_vlax)

param_end (vlax-curve-getEndParam obj_vlax)

perim_obj (vlax-curve-getDistAtParam

obj_vlax

(+ param_start param_end)

) ;_ Fin de vlax-curve-getDistAtParam

pt_start (vlax-curve-getStartPoint obj_vlax)

pt_end (vlax-curve-getEndPoint obj_vlax)

) ;_ Fin de setq

(initget 6)

(setq res_track (getdist (cadr ent) (strcat "\nDistance de résolution: " )))

(setq last_e (entlast)

old_osmd (getvar "osmode")

old_pdmd (getvar "pdmode")

) ;_ Fin de setq

(if (not res_track)

(setq res_track (/ perim_obj 100.0))

) ;_ Fin de if

;;;(initget "Oui Non _Yes No")

;;; (if

;;; (eq

;;; (getkword

;;; "\nVoulez vous faire une projection sur le SCU courant? [Oui/Non]: "

;;; ) ;_ Fin de getkword

;;; "Yes"

;;; ) ;_ Fin de eq

;;; (setq flag_ucs nil)

;;; (progn

;;; (command "_.ucs" "_entity" (car ent))

;;; (setq flag_ucs T)

;;; ) ;_ Fin de progn

;;; ) ;_ Fin de if

(cond

((and (eq typent "SPLINE")

(not (zerop (boole 1 1 (cdr (assoc 70 dxf_ent)))))

) ;_ Fin de and

(setq l_pt '("_close"))

)

((and (eq typent "ELLIPSE")

(zerop (cdr (assoc 41 dxf_ent)))

(eq (cdr (assoc 42 dxf_ent)) (* 2 pi))

) ;_ Fin de and

(setq l_pt '("_close"))

)

(T

(setq l_pt (cons (trans pt_end 0 1) '("")))

)

) ;_ Fin de cond

(setvar "osmode" 0)

(setvar "pdmode" 1)

(setvar "cmdecho" 0)

(command "_.measure" (car ent) res_track)

(while

(and

(= (cdr (assoc 0 (setq dxf_ent (entget (entlast)))))

"POINT"

) ;_ Fin de =

(not (equal (entlast) last_e))

) ;_ Fin de and

(setq l_pt (cons (trans (cdr (assoc 10 dxf_ent)) 0 1) l_pt))

(entdel (entlast))

) ;_ Fin de while

(command "_.pline"

(mapcar 'command (cons (trans pt_start 0 1) l_pt))

) ;_ Fin de command

;(if flag_ucs

; (command "_.ucs" "_previous")

;) ;_ Fin de if

(initget "Oui Non _Yes No")

(if (not (eq (getkword "\nEffacer l'entité source [Oui/Non] : ")

"No"

) ;_ Fin de eq

) ;_ Fin de not

(entdel (car ent))

) ;_ Fin de if

(setvar "osmode" old_osmd)

(setvar "pdmode" old_pdmd)

(setvar "cmdecho" 1)

)

(T (princ "\nN'est pas une Spline ou Ellipse!"))

) ;_ Fin de cond

(prin1)

)

 

 

amicalement

Posté(e)

Salut a tous

BONNE ET HEUREUSE ANNEE

 

Merci Tramber d'avoir répondu a mon appel, je sais que l'enregistrement en R12 est simple efficace et rapide, aussi j'utilise cette astuce régulièrement, mais cela reste insufisant dans certaine circonstances (génération de fichiers vraiment trop lours)

 

 

 

Salut Didier

Un grand merci a toi pour cette routine, ceci a l'air très intéressant et je vais voir ce que je peut en faire

J'espère m'en sortir tout seul pour utiliser cette routine, car hélas faut bien dire ce qui est je ne suis ni un pro ni un virtuose d'Acad, je l'utilise seleument dans mon activité professionnelle et il me reste tout a apprendre

Quoiqu'il en soit je te remerci encore pour ce petit cadeau de fin d'année

 

:D Bonne année

 

 

 

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é