Code:
(defun nn_vmload( / $rr fsn cnt dxmsg fna lpt fly izx eg etc tip lyr nLen ent tx8 enx loopw rst tmp nop)
(setq;|a000|;
rst "strcat"
fsn (ssget (list (cons 0 "*LINE")))) (if (= fsn nil) (progn (alert (strcat "[*ERROR* eSubSelectionSetEmpty\n]" readme.txt)) (exit))) (setq;|a000|;
cnt (dfn_ssg_len fsn)) (if (< cnt 1) (progn (alert (strcat "[*ERROR* eSomeInputDataLeftUnread\n]" readme.txt)) (exit))) (setq;|a000|;
tmp (getvar "DWGNAME")
fna (strcat (getvar "DWGPREFIX") (substr tmp 1 (- (strlen tmp) 4)) "_" (rtos (getvar "CDATE") 2 6) "csv")) (setq;|a000|;
tmp (strcat "\n[" tmp "]" "\nLabel.exe=" fna "\nDosx.exe=" (itoa cnt) "\nFormat.com=~HANDLE,LENGTH,LAYER,X,Y,Z~\n")) (setq;|a000|;
fly (open fna "w")) (write-line tmp fly) (close fly) (vl_load_com) (setq;|a000|;
cnt (- cnt 1)
$rr (list)) (progn (setq;|a000|;
izx 0) (while (<= izx cnt) (progn (setq;|a000|;
ent (ssname fsn izx)
eg (entget ent)
tip (cdr (assoc 0 eg))
han (cdr (assoc 5 eg))
lyr (cdr (assoc 8 eg))
nLen (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
$rr (cons (strcat (itoa izx) ":=" han "," (rtos nLen 2 2) "," lyr ",") $rr)) (if (= tip "LWPOLYLINE") (while (setq eg (member (assoc 10 eg) eg)) (setq;|a000|;
pnt (cdr (car eg))
$rr (cons (dfn_ent_point10 "2,3" pnt) $rr)
eg (cdr eg)))) (if (= tip "POLYLINE") (progn (setq;|a000|;
enx (entnext ent)) (while (/= (dfn_ent_dxf00 enx) "SEQEND") (progn (setq;|a000|;
eg (entget enx)) (while (setq eg (member (assoc 10 eg) eg)) (setq;|a000|;
eg (cdr eg)))) (setq;|a000|;
enx (entnext enx))))) (setq;|a000|;
r (cons (dfn_ent_point10 "2,3" (cdr (car eg))) $rr)) (if (= tip "LINE") (setq;|a000|;
$rr (cons (dfn_ent_point10 "2,3" eg) $rr)
$rr (cons (dfn_ent_point11 "2,3" eg) $rr))) (if (= tip "SPLINE") (progn (while (setq eg (member (assoc 11 eg) eg)) (setq;|a000|;
pnt (cdr (car eg))
$rr (cons (dfn_ent_point10 "2,3" eg) $rr)) (setq;|a000|;
eg (cdr eg))))) (if (/= $rr nil) (setq;|a000|;
tmp (apply (read rst) (reverse $rr))
fly (open fna "a")
nop (write-line tmp fly)
nop (close fly))) (setq;|a000|;
$rr nil)) (setq;|a000|;
izx (+ izx 1))))
fna) |