Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun c:rfu1 ( / js dxf_cod mod_sel n lremov file_name cle f_open key_sep str_sep oldim ename l_pt l_pr nbs)
- (princ "\nChoix d'un objet modèle pour le filtrage: ")
- (while
- (null
- (setq js
- (ssget "_+.:E:S"
- (list
- '(0 . "*LINE,INSERT")
- (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
- (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
- )
- )
- )
- )
- (princ "\nCe n'est pas un objet valable pour cette fonction!")
- )
- (vl-load-com)
- (setq dxf_cod (entget (ssname js 0)))
- (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov))))
- (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod))
- )
- (initget "Unique Tout Manuel _Single All Manual")
- (if (eq (setq mod_sel (getkword "\nMode de sélection filtrée, choix [Unique/Tout/Manuel]<Manuel>: ")) "Single")
- (setq n -1)
- (if (eq mod_sel "All")
- (setq js (ssget "_X" dxf_cod) n -1)
- (setq js (ssget dxf_cod) n -1)
- )
- )
- (setq file_name (getfiled "Nom du fichier a créer ?: " (strcat (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3)) "csv") "csv" 37))
- (if (null file_name) (exit))
- (if (findfile file_name)
- (progn
- (prompt "\nFichier éxiste déjà!")
- (initget "Ajoute Remplace annUler _Add Replace Undo")
- (setq cle
- (getkword "\nDonnées dans fichier? [Ajouter/Remplacer/annUler] <R>: ")
- )
- (cond
- ((eq cle "Add")
- (setq cle "a")
- )
- ((or (eq cle "Replace") (eq cle ()))
- (setq cle "w")
- )
- (T (exit))
- )
- (setq f_open (open file_name cle))
- )
- (setq f_open (open file_name "w"))
- )
- ; (initget "Espace Virgule Point-virgule Tabulation _SPace Comma SEmicolon Tabulation")
- ; (setq key_sep (getkword "\nSéparateur [Espace/Virgule/Point-virgule/Tabulation]? <Point-virgule>: "))
- ; (cond
- ; ((eq key_sep "SPpace") (setq str_sep " "))
- ; ((eq key_sep "Comma") (setq str_sep ","))
- ; ((eq key_sep "Tabulation") (setq str_sep "\t"))
- ; (T (setq str_sep ";"))
- (setq str_sep ";")
- ; )
- ; (setq str_sep (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList"))
- (setq oldim (getvar "dimzin"))
- (setvar "dimzin" 0)
- (write-line (strcat "Geometre" str_sep "04001 Philippe ARCIN" str_sep str_sep ) f_open)
- (write-line (strcat "Projection" str_sep "RGF93CC44" str_sep str_sep ) f_open)
- (write-line (strcat ";;;;" str_sep) f_open)
- (write-line (strcat "Sommets" str_sep str_sep ) f_open)
- (write-line (strcat "Type" str_sep "Num" str_sep "X" str_sep "Y" str_sep "Precison" str_sep "Nature") f_open)
- (repeat (sslength js)
- (setq ename (vlax-ename->vla-object (ssname js (setq n (1+ n)))) l_pt nil)
- (setq l_pr (list 'StartPoint 'EndPoint 'Center 'InsertionPoint 'Coordinates 'FitPoints) nbs 0)
- (foreach n l_pr
- (if (vlax-property-available-p ename n)
- (setq l_pt
- (if (or (eq n 'Coordinates) (eq n 'FitPoints))
- (append
- (if (eq (vla-get-ObjectName ename) "AcDbPolyline")
- (l-coor2l-pt (vlax-get ename n) nil)
- (if (and (eq n 'FitPoints) (zerop (vlax-get ename 'FitTolerance)))
- (l-coor2l-pt (vlax-get ename 'ControlPoints) T)
- (l-coor2l-pt (vlax-get ename n) T)
- )
- )
- l_pt
- )
- (cons (vlax-get ename n) l_pt)
- )
- )
- )
- )
- (foreach n l_pt
- (write-line
- (strcat "sommet" str_sep
- (itoa (setq nbs (+ 1 nbs))) str_sep
- (rtos (car n) 2 2) str_sep
- (rtos (cadr n) 2 2) str_sep
- (strcat "2") str_sep
- (strcat "borne")
- )
- f_open
- )
- )
- ;;(write-line "" f_open)
- )
- (close f_open)
- (setvar "dimzin" oldim)
- (prin1)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement