néné Posté(e) le 31 décembre 2005 Posté(e) le 31 décembre 2005 Rappel :Je boss sur machine de découpe CNC et celle ci ne suporte pas les splinesUne 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
Tramber Posté(e) le 31 décembre 2005 Posté(e) le 31 décembre 2005 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 ./__\. (.°=°.)
didier Posté(e) le 31 décembre 2005 Posté(e) le 31 décembre 2005 Bonjour Néné Bonne année à Toi avec cette routineje 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
néné Posté(e) le 1 janvier 2006 Auteur Posté(e) le 1 janvier 2006 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 DidierUn grand merci a toi pour cette routine, ceci a l'air très intéressant et je vais voir ce que je peut en faireJ'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 apprendreQuoiqu'il en soit je te remerci encore pour ce petit cadeau de fin d'année :D Bonne année
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant