试试这个Goldy
- (defun c:goldy (/ doc spc file nl lst pt)
- (vl-load-com)
- (setq doc (vla-get-ActiveDocument
- (vlax-get-Acad-Object))
- spc (if (zerop (vla-get-activespace doc))
- (if (= (vla-get-mspace doc) :vlax-true) ; Vport
- (vla-get-modelspace doc)
- (vla-get-paperspace doc))
- (vla-get-modelspace doc)))
- (or (tblsearch "LAYER" "TOCKA")
- (vla-add (vla-get-layers doc) "TOCKA"))
- (if (setq file (getfiled "Select Text File"
- (if *load$file* *load$file* "") "txt" )
- (progn
- ;(vlp file)
- (setq *load$file* file file (open file "r"))
- (while (setq nl (read-line file))
- (setq lst (cons (StrBrk nl 32) lst)))
- (close file)
- (foreach line lst
- (setq pt
- (mapcar 'distof
- (list (caddr line) (cadr line) (cadddr line))))
- (vla-put-layer
- (vla-AddPoint spc (vlax-3D-point pt)) "TOCKA")
- (Make_Text pt (last line) 0.0 "KOD" 1 2)
- (Make_Text pt (car line) 0.0 "BROJ TOCKE" 1 0)
- (Make_Text pt (cadddr line) 0.0 "VISINA" 1 3)))
- (princ "\n<!> No File Selected <!>"))
- (princ))
- (defun StrBrk (str chrc / pos lst)
- (while (setq pos (vl-string-position chrc str))
- (setq lst (cons (substr str 1 pos) lst)
- str (substr str (+ pos 2))))
- (reverse (cons str lst)))
- (defun Make_Text (pt val rot lay |72 |73)
- (entmake
- (list
- (cons 0 "TEXT")
- (cons 8 lay)
- (cons 10 pt)
- (cons 40 (getvar "TEXTSIZE"))
- (cons 1 val)
- (cons 50 rot)
- (cons 7 (getvar "TEXTSTYLE"))
- (cons 71 0)
- (cons 72 |72)
- (cons 73 |73)
- (cons 11 pt))))
|