这是下一个命令,我很快就可以了
里面有些错误
- (defun C:demo2 (/ bulge ec date dx dy en enh epar file fname found headers
- hobjs hset info inspts line obj plott pt rest spar sset tail)
- (vl-load-com)
-
- (setvar "dimzin" 0)
- (command "_zoom" "_e")
- (if (setq sset (ssget '((0 . "lwpolyline")(8 . "Plot-*"))))
- (progn
- (setq hset (ssget "_X" '((0 . "hatch")(8 . "Plot-*"))))
- (while (setq enh (ssname hset 0))
- (setq hobjs (cons (vlax-ename->vla-object enh) hobjs))
- (ssdel enh hset))
- (setq headers "Layer Name, Entity Name, CoordX, CoordY, Bulge, HatchEntityName, HatchStyle")
- (setq plott (cons headers plott))
- (while (setq en (ssname sset 0))
-
- (setq obj (vlax-ename->vla-object en))
- (setq found nil)
- (foreach hobj hobjs
- (if (not (vl-catch-all-error-p (setq inspts (vl-catch-all-apply'(lambda()(vla-intersectwith obj hobj acExtendNone))))))
- (progn
- (setq found T)
- (setq tail (strcat "," (vla-get-handle hobj) "," (vla-get-patternname hobj))))
- (setq tail (strcat ",NULL,NULL"))))
- (setq line (strcat (vla-get-layer obj) ","(vla-get-handle obj)","))
- (setq spar (vlax-curve-getstartparam obj)
- epar (vlax-curve-getendparam obj))
- (if (eq :vlax-true (vla-get-closed obj))(setq ec epar)(setq ec (+ epar 1)))
- (while (< spar ec)
- (setq pt (vlax-curve-getpointatparam obj spar))
- (setq dx (car pt)
- dy (cadr pt))
- (setq bulge (abs (vlax-invoke obj 'getbulge spar)))
- (setq rest (strcat (rtos dx 2 1)"," (rtos dy 2 1)"," (rtos bulge 2 2)))
- (setq info (strcat line rest tail))
- (setq plott (cons info plott))
- (setq spar (1+ spar)))
- (ssdel en sset))
- (setq plott (reverse plott))
- (if plott
- (progn
-
- (setq date (menucmd "M=$(edtime,$(getvar,date),MO_DD_YY_HH_MM)"))
-
- (setq fname (strcat (getvar "dwgprefix") (strcat "PlanPolylineCoords_" date ".csv")))
-
- (if (setq file (open fname "w"))
- (progn
-
- (foreach line plott
-
- (write-line line file)
- )
- (close file)
- )
- )
- )
- )
- )
- )
- (princ)
- )
- (prompt "\n")
- (prompt "\n\t***\tType demo2 to execute...\t***\n")
- (princ)
|