Advertisement
Guest User

AutoLisp

a guest
Jul 17th, 2016
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 3.74 KB | None | 0 0
  1. (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)
  2.     (princ "\nChoix d'un objet modèle pour le filtrage: ")
  3.     (while
  4.         (null
  5.             (setq js
  6.                 (ssget "_+.:E:S"
  7.                     (list
  8.                         '(0 . "*LINE,INSERT")
  9.                         (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
  10.                         (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
  11.                     )
  12.                 )
  13.             )
  14.         )
  15.         (princ "\nCe n'est pas un objet valable pour cette fonction!")
  16.     )
  17.     (vl-load-com)
  18.     (setq dxf_cod (entget (ssname js 0)))
  19.     (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))))
  20.         (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod))
  21.     )
  22.     (initget "Unique Tout Manuel _Single All Manual")
  23.     (if (eq (setq mod_sel (getkword "\nMode de sélection filtrée, choix [Unique/Tout/Manuel]<Manuel>: ")) "Single")
  24.         (setq n -1)
  25.         (if (eq mod_sel "All")
  26.                 (setq js (ssget "_X" dxf_cod) n -1)
  27.                 (setq js (ssget dxf_cod) n -1)
  28.         )
  29.     )
  30.     (setq file_name (getfiled "Nom du fichier a créer ?: " (strcat (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3)) "csv") "csv" 37))
  31.     (if (null file_name) (exit))
  32.     (if (findfile file_name)
  33.         (progn
  34.             (prompt "\nFichier éxiste déjà!")
  35.             (initget "Ajoute Remplace annUler _Add Replace Undo")
  36.             (setq cle
  37.                 (getkword "\nDonnées dans fichier? [Ajouter/Remplacer/annUler] <R>: ")
  38.             )
  39.             (cond
  40.                 ((eq cle "Add")
  41.                     (setq cle "a")
  42.                 )
  43.                 ((or (eq cle "Replace") (eq cle ()))
  44.                     (setq cle "w")
  45.                 )
  46.                 (T (exit))
  47.             )
  48.             (setq f_open (open file_name cle))
  49.         )
  50.         (setq f_open (open file_name "w"))
  51.     )
  52. ;   (initget "Espace Virgule Point-virgule Tabulation _SPace Comma SEmicolon Tabulation")
  53. ;   (setq key_sep (getkword "\nSéparateur [Espace/Virgule/Point-virgule/Tabulation]? <Point-virgule>: "))
  54. ;   (cond
  55. ;       ((eq key_sep "SPpace") (setq str_sep " "))
  56. ;       ((eq key_sep "Comma") (setq str_sep ","))
  57. ;       ((eq key_sep "Tabulation") (setq str_sep "\t"))
  58. ;       (T (setq str_sep ";"))
  59.         (setq str_sep ";")
  60. ;   )
  61. ;   (setq str_sep (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList"))
  62.     (setq oldim (getvar "dimzin"))
  63.     (setvar "dimzin" 0)
  64.     (write-line (strcat "Geometre" str_sep "04001  Philippe ARCIN" str_sep  str_sep ) f_open)
  65.                    (write-line (strcat "Projection" str_sep "RGF93CC44" str_sep str_sep ) f_open)
  66.                    (write-line (strcat ";;;;" str_sep) f_open)
  67.                    (write-line (strcat "Sommets" str_sep str_sep ) f_open)
  68.                    (write-line (strcat "Type" str_sep "Num" str_sep  "X" str_sep  "Y" str_sep "Precison" str_sep "Nature") f_open)
  69.     (repeat (sslength js)
  70.         (setq ename (vlax-ename->vla-object (ssname js (setq n (1+ n)))) l_pt nil)
  71.         (setq l_pr (list 'StartPoint 'EndPoint 'Center 'InsertionPoint 'Coordinates 'FitPoints) nbs 0)
  72.         (foreach n l_pr
  73.             (if (vlax-property-available-p ename n)
  74.                 (setq l_pt
  75.                     (if (or (eq n 'Coordinates) (eq n 'FitPoints))
  76.                         (append
  77.                             (if (eq (vla-get-ObjectName ename) "AcDbPolyline")
  78.                                 (l-coor2l-pt (vlax-get ename n) nil)
  79.                                 (if (and (eq n 'FitPoints) (zerop (vlax-get ename 'FitTolerance)))
  80.                                     (l-coor2l-pt (vlax-get ename 'ControlPoints) T)
  81.                                     (l-coor2l-pt (vlax-get ename n) T)
  82.                                 )
  83.                             )
  84.                             l_pt
  85.                         )
  86.                         (cons (vlax-get ename n) l_pt)
  87.                     )
  88.                 )
  89.             )
  90.         )
  91.         (foreach n l_pt
  92.             (write-line
  93.                         (strcat "sommet" str_sep
  94.                     (itoa (setq nbs (+ 1 nbs))) str_sep
  95.                     (rtos (car n) 2 2) str_sep
  96.                     (rtos (cadr n) 2 2) str_sep
  97.                     (strcat "2") str_sep
  98.                                         (strcat "borne")
  99.                    
  100.                 )
  101.                 f_open
  102.                                     )
  103.         )
  104.         ;;(write-line "" f_open)
  105.     )
  106.     (close f_open)
  107.     (setvar "dimzin" oldim)
  108.     (prin1)
  109. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement