AutoCAD – Drawings

Export point coordinates in AutoCAD to Excel without typing a digit

Export point coordinates in AutoCAD as labels, a table and a CSV that opens in Excel. A free lisp to download that keeps the decimals and the accents.

  • TS. Đỗ Quốc Hoàng
  • 20 min read
A five-corner land parcel after running the XTD command: every corner carries a two-line coordinate label, with the summary table on the right Photo: AutoCAD 2027

Anyone producing land or infrastructure documents wants to export point coordinates in AutoCAD for the same reason: to write each corner's coordinates onto the drawing and build a summary table, instead of typing every figure by hand.

We wrote a file of our own for the job, and this article prints the whole source on the page so you can read it before running anything on your machine. For the whole drafting and documentation workflow, see the AutoCAD for Construction course.

What a point label and coordinate table must contain

Anyone who has to export point coordinates in AutoCAD for a cadastral file meets the same four parts. A proper coordinate label has four parts: a leader from the point out to clear space, two figures stacked, a numbered circle, and finally a table gathering them all.

The decision that matters is which figure goes first. Vietnamese surveying practice puts X on the north axis and Y on the east axis, while AutoCAD calls the horizontal axis X and the vertical one Y. In other words, the X column of a coordinate table has to be fed from AutoCAD's Y.

Every circulating lisp swaps the axes already, and asks nothing. On a cadastral sheet that is right. On an architectural plan the figures come out reversed with no warning at all.

Another phrasing people search for is a lisp that simply picks a coordinate, which is a narrower job: click a point and read the pair, with no label and no table. AutoCAD does that itself with the ID command, and typing coordinates from the keyboard is covered in our article on entering coordinates in AutoCAD. A lisp earns its place only when you need labels and a table, which is to say when you are producing documents rather than checking a figure.

The Institute file

Download XTD-IIC.lsp13 KB, two commands. The source stays in the article, because running unknown code on your own machine deserves care.
CommandWhat it does
XTDselect points, label them on the drawing and build the summary table
XTDCSVselect points and write straight to a .csv that Excel opens

Both ask which convention to use before doing anything, defaulting to surveying. Anyone drawing architecture types C to keep AutoCAD's own axes.

;;; ==================================================================
;;;  XTD-IIC.LSP  -  ghi toa do len ban ve va lap bang thong ke
;;;  Vien Tin hoc Xay dung (IIC) - Truong Dai hoc Xay dung Ha Noi
;;;  https://iic.huce.edu.vn  -  Tel: 0989 427 809
;;; ------------------------------------------------------------------
;;;  Lenh:
;;;    XTD      chon cac diem, ghi nhan toa do len ban ve va lap bang
;;;    XTDCSV   chon cac diem roi ghi thang ra tep .csv cho Excel
;;;
;;;  Ca hai deu HOI quy uoc truc truoc khi lam, mac dinh la trac dia
;;;  (X la truc bac, tuc la lay tu Y cua AutoCAD). Ai ve kien truc thi
;;;  go C de giu nguyen truc cua AutoCAD.
;;;
;;;  Bon dieu da do tren AutoCAD 2027 va lam theo:
;;;    - rtos bi bien DIMZIN cat sach so 0 thua, 584320.00 in ra thanh
;;;      584320. Lenh dat DIMZIN ve 0 trong luc chay roi TRA LAI, ke ca
;;;      khi nguoi dung bam ESC.
;;;    - khong mot phong .shx Unicode cai san nao co du hinh chu tieng
;;;      Viet (da do het 41 phong). Lenh tu thu kieu chu hien hanh,
;;;      viet duoc thi dung luon, khong thi tao kieu IIC-VN bang TTF.
;;;    - AutoLISP khong ghi duoc tep UTF-8, nen tieu de tep .csv de
;;;      khong dau moi chac mo dung o moi may.
;;;    - dung entmake chu khong dung (command "text" ...): kieu chu dat
;;;      chieu cao co dinh thi dong hoi chieu cao bien mat va moi doi
;;;      so sau do lech di mot nhip.
;;;
;;;  Nap tep: go APPLOAD, chon tep nay, bam Load.
;;;  Tep luu bang ma UTF-8. Sua bang Notepad thi nho luu lai dung UTF-8.
;;; ==================================================================

(vl-load-com)

;;; ------------------------------------------------------------------
;;;  Phan chung
;;; ------------------------------------------------------------------

(defun iic-bang-ten ()
  (princ "\nLisp được lập trình bởi RDSIC - Viện Tin học Xây dựng")
  (princ "\nwebsite: https://iic.huce.edu.vn")
  (princ "\nTel: 0989 427 809")
  (princ)
)

;; Gop ca lenh vao MOT buoc undo. Dung danh dau cua ActiveX chu khong
;; dung (command "_.UNDO" ...): ban 2027 CAM goi (command) tu trong ham
;; bay loi *error*, con danh dau nay thi goi duoc o moi noi.
(defun iic-tai-lieu () (vla-get-ActiveDocument (vlax-get-acad-object)))
(defun iic-mo-undo () (vla-StartUndoMark (iic-tai-lieu)) (princ))
(defun iic-dong-undo () (vla-EndUndoMark (iic-tai-lieu)) (princ))

;; Cat mot ban sao cac bien he thong roi tra lai nguyen ven.
;; Vao  ("dimzin" "cmdecho")  ->  ra  (("dimzin" . 8) ("cmdecho" . 1))
(defun iic-cat-bien (ten)
  (mapcar (function (lambda (v) (cons v (getvar v)))) ten)
)
(defun iic-tra-bien (ban)
  (foreach c ban (setvar (car c) (cdr c)))
  (princ)
)

;;; ------------------------------------------------------------------
;;;  Do xem mot kieu chu co viet duoc tieng Viet khong
;;; ------------------------------------------------------------------
;;  Phong thieu hinh chu thi AutoCAD thay bang dau hoi, nen be rong
;;  khung bao cua chu can thu va cua dau hoi bang nhau. Phep do co
;;  doi chung la chinh dau hoi ay.

(defun iic-rong-cua (e / dt g1 g2)
  (setq dt (vlax-ename->vla-object e))
  (vla-getBoundingBox dt (quote g1) (quote g2))
  (abs (- (car (vlax-safearray->list g2)) (car (vlax-safearray->list g1))))
)

;; Chuoi rong thi khong ve ra net nao, va vla-getBoundingBox nem loi
;; "Null extents". O trong cua dong TONG trong bang chinh la chuoi ay,
;; nen phai chan tu dau va van don loi cho chac.
(defun iic-be-rong (kieu ch / e r)
  (cond
    ((or (null ch) (= ch "")) 0.0)
    ((not (entmake (list (cons 0 "TEXT") (cons 7 kieu)
                         (cons 10 (list 0.0 0.0 0.0)) (cons 40 1.0) (cons 1 ch))))
     0.0)
    (T
     (setq e (entlast)
           r (vl-catch-all-apply (function iic-rong-cua) (list e)))
     (entdel e)
     (if (vl-catch-all-error-p r) 0.0 r))
  )
)

(defun iic-viet-duoc-tiengviet (kieu)
  (> (abs (- (iic-be-rong kieu "ờ") (iic-be-rong kieu "?"))) 1e-6)
)

;; Ten kieu chu viet duoc tieng Viet, tao moi neu can.
(defun iic-xtd-kieu-viet (/ nay)
  (setq nay (getvar "textstyle"))
  (cond
    ((iic-viet-duoc-tiengviet nay) nay)
    ((tblsearch "style" "IIC-VN")
     (princ "\n  Kiểu chữ hiện hành không có dấu tiếng Việt, dùng kiểu IIC-VN.")
     "IIC-VN")
    ((entmake (list (cons 0 "STYLE") (cons 100 "AcDbSymbolTableRecord")
                    (cons 100 "AcDbTextStyleTableRecord") (cons 2 "IIC-VN")
                    (cons 70 0) (cons 40 0.0) (cons 41 1.0) (cons 50 0.0)
                    (cons 71 0) (cons 42 2.5) (cons 3 "arial.ttf") (cons 4 "")))
     (princ "\n  Đã tạo kiểu IIC-VN (phông Arial) để chữ không ra dấu hỏi.")
     "IIC-VN")
    (T nay)
  )
)

;;; ------------------------------------------------------------------
;;;  Ve net va chu bang entmake
;;; ------------------------------------------------------------------

(defun iic-net (a b)
  (entmake (list (cons 0 "LINE") (cons 10 a) (cons 11 b)))
)

(defun iic-tron (tam r)
  (entmake (list (cons 0 "CIRCLE") (cons 10 tam) (cons 40 r)))
)

;; canh: 0 trai, 1 giua, 2 phai - tinh theo diem p
(defun iic-xtd-chu (p cao noi kieu canh)
  (entmake (list (cons 0 "TEXT") (cons 7 kieu) (cons 10 p) (cons 11 p)
                 (cons 40 cao) (cons 1 noi) (cons 72 canh) (cons 73 0)))
)

;;; ------------------------------------------------------------------
;;;  Quy uoc truc
;;; ------------------------------------------------------------------
;;  Trac dia Viet Nam: X la truc bac, Y la truc dong. AutoCAD thi X
;;  ngang, Y doc. Nen X cua bang phai lay tu Y cua AutoCAD.

(defun iic-cap-so (p trac-dia)
  (if trac-dia (list (cadr p) (car p)) (list (car p) (cadr p)))
)

(defun iic-tieu-de (trac-dia)
  (if trac-dia
    (list "Tọa độ X (bắc)" "Tọa độ Y (đông)")
    (list "Tọa độ X" "Tọa độ Y")
  )
)

(defun iic-tieu-de-csv (trac-dia)
  (if trac-dia
    (list "Toa do X (bac)" "Toa do Y (dong)")
    (list "Toa do X" "Toa do Y")
  )
)

;;; ------------------------------------------------------------------
;;;  Nhan toa do dat canh mot diem
;;; ------------------------------------------------------------------
;;  Gom: vong tron mang so hieu diem, duong dan cheo len, mot doan ke
;;  ngang, va hai dong so xep chong ben tren doan ke.

(defun iic-xtd-ghi-nhan (p stt so cao kieu / r goc khuyu ke rong c1 c2 dau)
  (setq r     (* 1.2 cao)
        goc   (/ pi 4.0)
        khuyu (polar p goc (* 7.0 cao))
        c1    (strcat "X = " (car so))
        c2    (strcat "Y = " (cadr so))
        rong  (max (iic-be-rong kieu c1) (iic-be-rong kieu c2))
        ke    (polar khuyu 0.0 (* cao (+ rong 0.6)))
        dau   (polar khuyu 0.0 (* 0.3 cao)))
  (iic-tron p r)
  (iic-xtd-chu (list (car p) (- (cadr p) (* 0.5 cao)) 0.0) cao (itoa stt) kieu 1)
  (iic-net (polar p goc r) khuyu)
  (iic-net khuyu ke)
  (iic-xtd-chu (polar dau (/ pi 2.0) (* 0.35 cao)) cao c2 kieu 0)
  (iic-xtd-chu (polar dau (/ pi 2.0) (* 1.75 cao)) cao c1 kieu 0)
  (princ)
)

;;; ------------------------------------------------------------------
;;;  Bang thong ke
;;; ------------------------------------------------------------------
;;  Be rong tung cot lay so LON HON giua be rong day so va be rong
;;  tieu de, neu khong tieu de tran sang cot ben.

(defun iic-rong-cot (kieu cao tieu ds / r)
  (setq r (iic-be-rong kieu tieu))
  (foreach d ds (setq r (max r (iic-be-rong kieu d))))
  (* cao (+ r 1.6))
)

(defun iic-xtd-ve-bang (goc cao kieu trac ds / w0 w1 w2 h x0 y n i hang ten)
  (setq ten (iic-tieu-de trac)
        w0  (iic-rong-cot kieu cao "TT" (mapcar (function car) ds))
        w1  (iic-rong-cot kieu cao (car ten) (mapcar (function cadr) ds))
        w2  (iic-rong-cot kieu cao (cadr ten) (mapcar (function caddr) ds))
        h   (* 2.0 cao)
        n   (length ds)
        x0  (car goc)
        y   (cadr goc)
        i   0)
  ;; duong ngang: mot duong tren cung, roi moi hang mot duong
  (while (<= i (1+ n))
    (iic-net (list x0 (- y (* i h)) 0.0)
             (list (+ x0 w0 w1 w2) (- y (* i h)) 0.0))
    (setq i (1+ i))
  )
  ;; duong doc
  (foreach dx (list 0.0 w0 (+ w0 w1) (+ w0 w1 w2))
    (iic-net (list (+ x0 dx) y 0.0)
             (list (+ x0 dx) (- y (* (1+ n) h)) 0.0))
  )
  ;; tieu de
  (iic-xtd-chu (list (+ x0 (* 0.5 w0)) (- y (* 0.65 h)) 0.0) cao "TT" kieu 1)
  (iic-xtd-chu (list (+ x0 w0 (* 0.5 w1)) (- y (* 0.65 h)) 0.0) cao (car ten) kieu 1)
  (iic-xtd-chu (list (+ x0 w0 w1 (* 0.5 w2)) (- y (* 0.65 h)) 0.0) cao (cadr ten) kieu 1)
  ;; tung hang: so thu tu can giua, hai cot so can phai cho thang hang don vi
  (setq i 1)
  (foreach hang ds
    (iic-xtd-chu (list (+ x0 (* 0.5 w0)) (- y (* (+ i 0.65) h)) 0.0) cao (car hang) kieu 1)
    (iic-xtd-chu (list (- (+ x0 w0 w1) (* 0.6 cao)) (- y (* (+ i 0.65) h)) 0.0)
             cao (cadr hang) kieu 2)
    (iic-xtd-chu (list (- (+ x0 w0 w1 w2) (* 0.6 cao)) (- y (* (+ i 0.65) h)) 0.0)
             cao (caddr hang) kieu 2)
    (setq i (1+ i))
  )
  (princ)
)

;;; ------------------------------------------------------------------
;;;  Hoi quy uoc truc va chon diem
;;; ------------------------------------------------------------------

(defun iic-hoi-truc (/ tl)
  (initget "TracDia Cad")
  (setq tl (getkword "\nQuy ước trục [TracDia/Cad] <TracDia>: "))
  (/= tl "Cad")
)

(defun iic-chon-diem (/ ds p)
  (setq ds (list))
  (while (setq p (getpoint "\nChọn điểm (Enter để dừng): "))
    (setq ds (cons (trans p 1 0) ds))
  )
  (reverse ds)
)

;; Danh sach diem  ->  danh sach hang ("1" "x" "y") da lam tron hai chu so.
(defun iic-xtd-lap-hang (ds trac / i kq so)
  (setq i 0 kq (list))
  (foreach p ds
    (setq i  (1+ i)
          so (iic-cap-so p trac)
          kq (cons (list (itoa i) (rtos (car so) 2 2) (rtos (cadr so) 2 2)) kq))
  )
  (reverse kq)
)

;;; ------------------------------------------------------------------
;;;  Lenh XTD
;;; ------------------------------------------------------------------

(defun c:XTD (/ *error* cu-error ban cao mac trac ds pb kieu hang i)

  (setq cu-error *error*
        ban      (iic-cat-bien (list "dimzin" "cmdecho")))
  (defun *error* (m)
    (if (and m (/= m "Function cancelled") (/= m "quit / exit abort"))
      (princ (strcat "\nIIC lỗi: " m)))
    (iic-tra-bien ban)
    (iic-dong-undo)
    (setq *error* cu-error)
    (princ)
  )

  (iic-bang-ten)
  (setvar "dimzin" 0)

  (setq mac (getvar "textsize"))
  (if (<= mac 1e-8) (setq mac 2.5))
  (setq cao (getreal (strcat "\nChiều cao chữ <" (rtos mac 2 2) ">: ")))
  (if (or (null cao) (<= cao 1e-8)) (setq cao mac))

  (setq trac (iic-hoi-truc)
        ds   (iic-chon-diem))

  (if (null ds)
    (princ "\nKhông chọn điểm nào.")
    (progn
      (setq hang (iic-xtd-lap-hang ds trac))
      (if (setq pb (getpoint "\nVị trí đặt bảng (góc trên bên trái): "))
        (progn
          (setvar "cmdecho" 0)
          (iic-mo-undo)
          (setq kieu (iic-xtd-kieu-viet) i 0)
          (foreach p ds
            (setq i (1+ i))
            (iic-xtd-ghi-nhan p i (cdr (nth (1- i) hang)) cao kieu)
          )
          (iic-xtd-ve-bang (trans pb 1 0) cao kieu trac hang)
          (iic-dong-undo)
          (princ (strcat "\nĐã ghi " (itoa (length ds)) " điểm."))
        )
      )
    )
  )

  (iic-tra-bien ban)
  (setq *error* cu-error)
  (princ)
)

;;; ------------------------------------------------------------------
;;;  Lenh XTDCSV
;;; ------------------------------------------------------------------

(defun c:XTDCSV (/ *error* cu-error ban trac ds tep f ten)

  (setq cu-error *error*
        ban      (iic-cat-bien (list "dimzin")))
  (defun *error* (m)
    (if (and m (/= m "Function cancelled") (/= m "quit / exit abort"))
      (princ (strcat "\nIIC lỗi: " m)))
    (iic-tra-bien ban)
    (setq *error* cu-error)
    (princ)
  )

  (iic-bang-ten)
  (setvar "dimzin" 0)

  (setq trac (iic-hoi-truc)
        ds   (iic-chon-diem))

  (if (null ds)
    (princ "\nKhông chọn điểm nào.")
    (progn
      (setq tep (getfiled "Ghi tọa độ ra tệp" "toa-do" "csv" 1))
      (if (and tep (setq f (open tep "w")))
        (progn
          (setq ten (iic-tieu-de-csv trac))
          (write-line (strcat "TT," (car ten) "," (cadr ten)) f)
          (foreach h (iic-xtd-lap-hang ds trac)
            (write-line (strcat (car h) "," (cadr h) "," (caddr h)) f)
          )
          (close f)
          (princ (strcat "\nĐã ghi " (itoa (length ds)) " điểm ra " tep))
        )
        (princ "\nKhông ghi được tệp.")
      )
    )
  )

  (iic-tra-bien ban)
  (setq *error* cu-error)
  (princ)
)

(princ "\nXTD-IIC.LSP: go XTD de ghi nhan va lap bang, XTDCSV de xuat ra Excel.")
(princ)

Using it, step by step: labels then csv export

Step 1 — Load the file

Type APPLOAD, point at the file, click Load, then Close. To avoid loading it again on every start, add it to the Startup Suite in that same dialog. The loading route is covered in detail in our article on a lisp that shortens extension lines.

Step 2 — Run XTD

Type XTD and press Enter. Three questions follow in order:

Chiều cao chữ <2.50>:

Quy ước trục [TracDia/Cad] <TracDia>:

Chọn điểm (Enter để dừng):

Leave the text height alone and it follows the drawing's TEXTSIZE. Press Enter through the convention question for cadastral work. Then click each corner in turn and press Enter when done.

Step 3 — Place the table

Vị trí đặt bảng (góc trên bên trái):

Click a point in clear space. The table builds itself with three columns, each sized to the longest figure in it, and headers saying which column is north and which is east. AutoCAD reports:

Đã ghi 5 điểm.

Step 4 — Or write straight to Excel

Type XTDCSV, select the points as above, and choose where to save. The .csv opens in Excel as three clean columns, with no copying figures across from the drawing.

Getting northing and easting the right way round is not a detail. A parcel boundary entered into the land registry with the two columns swapped describes a different piece of ground, and the mistake survives every later check because both figures look perfectly plausible. This is the one place where a lisp that asks a question beats a lisp that is clever.

Exporting coordinates from AutoCAD to Excel: what the file looks like

The XTDCSV command exists for exactly this. It draws nothing: it asks for the axis convention, lets you pick the points, and writes straight to a .csv file. Excel opens a .csv like any other spreadsheet, with no conversion step.

Run on five points, the file reads back byte by byte like this. It came to exactly 150 bytes, and this is the whole of it:

TT,Toa do X (bac),Toa do Y (dong)
1,-3507724.07,2732.19
2,-3507724.07,6932.19
3,-3504224.07,7632.19
4,-3502524.07,4532.19
5,-3505124.07,2032.19

Three things are readable straight off that file.

Both decimal places survive. This is precisely what the circulating version loses, and the cause is the DIMZIN variable, covered in the next section.

The column headings carry no accents. That is not carelessness. AutoLISP cannot write a UTF-8 file, so accented characters come out as escape sequences when Excel opens them. The measurement behind that is in the section on Vietnamese further down.

Line endings are Windows style. The file uses CRLF, which is what Excel on Windows expects, so it opens straight into three columns.

If Excel drops everything into a single column, that is the list separator on your machine set to a semicolon rather than a comma, not a fault in the file.

Northing and easting: three faults in the circulating version

The most popular one, unpacked and read through, runs to 104 lines. It runs, and the idea behind it is sound. But three things are broken, and all three are easy to check.

The table header produced by the circulating lisp: those two words are Vietnamese for "coordinate", written in a 2000s-era code page. The figures have also lost their decimals Photo: AutoCAD 2027

The first is the code page. In the source, the column header is written as a string that only renders correctly under an old Vietnamese code page from the early 2000s. On a machine with an ordinary Unicode text style it comes out exactly as the image above shows.

The second is the decimals. Autodesk's rtos page states that the function works "according to the settings of mode, precision, and the AutoCAD UNITMODE, DIMZIN, LUNITS, and LUPREC system variables". With DIMZIN at 8, which is what most metric drawings carry, trailing zeros are stripped and 584320.00 prints as 584320. A survey document that loses two decimal places is not a survey document. Our file switches DIMZIN off while it runs and puts the old value back, including when you press Escape.

The third is the missing error handler. The old file opens an undo group with Undo Begin but defines no *error* function. Press Escape part way through and that group is left open, while CMDECHO stays at 0 — Measured exactly that after pressing Escape. From then on the command line stops echoing and the user has no idea why.

In fairness, one of our guesses was wrong. We expected object snap to be left switched off too, but measurement showed OSMODE restored correctly. That part they got right.

One more difference sits where few people look: local variables. The old file lets seven variables escape its own scope, including names as collision-prone as k and n. Another lisp loaded in the same session that uses the same names will overwrite them, and the error shows up somewhere unrelated. Ours declares every variable local.

Accented Vietnamese in the coordinate table

The table XTD draws carries Tọa độ X (bắc) and Tọa độ Y (đông) — full accents, in Unicode. Getting there meant answering a question few references state plainly: which AutoCAD text style can actually draw Vietnamese?

This covers all 41 Unicode .shx fonts that ship with AutoCAD 2027. The check is simple: draw the character ờ, draw a ?, and read both bounding boxes. A font without the glyph draws a question mark instead, so the two widths come out equal.

Result across 41 Unicode .shx fontsCount
Full Vietnamese glyph coverage0
Only the letter Đ, no tone marks1 (GENISO.shx)
None; the text draws as question marks40 (romans, simplex, txt, isocp among them)

Autodesk's About Unicode Font Descriptions says a Unicode font "is capable of supporting all languages and platforms". True of the format, but the format is not the glyphs. A font in Unicode form that holds no shape for ờ still leaves AutoCAD drawing a question mark.

So XTD measures the current text style with that same test before it writes. If the drawing's own style can carry Vietnamese, the command keeps it and the file's typography is untouched. If it cannot, the command creates a style called IIC-VN on a TrueType font present on every Windows machine, and says on the command line what it did. Nothing to install.

The XTDCSV command is the one place we had to give ground: its file header stays unaccented. AutoLISP has two ways of writing a file, and neither helps. write-line writes in the machine's ANSI code page and turns anything outside it into the literal text \U+1ECD, so Tọa độ reaches Excel as T\U+1ECDa \U+0111\U+1ED9. write-char behaves the same way: across all 255 codes the first 128 pass through untouched, while every one of the other 128 comes out as an escape sequence. AutoLISP cannot write a UTF-8 file, so an unaccented CSV header is the only thing that opens correctly everywhere.

What our version changes, from dimzin to the point label

PointCirculating versionInstitute version
Axis conventionswapped silentlyasks once, defaults to surveying
Decimalsdepends on DIMZIN, often lostforced to two, then the variable is restored
Pressing Escapeundo group left open, CMDECHO stuck at 0*error* handler puts everything back
Table headerold code page, renders as noiseaccented Unicode Vietnamese; the command picks a style that can draw it
Column widthsized on the figures, header overflowsthe larger of figure width and header width
Excel exportnonethe XTDCSV command

A second habit worth copying: keep the table's column widths tied to the content rather than fixed. Survey coordinates in a national grid run to seven digits, while a local site grid may use four. A table sized for one looks wrong with the other, and a header that overflows into the next column is the first thing a reviewer notices.

One technical detail is worth naming. The old file creates text with (command "text" ...). That breaks when the current text style has a fixed height, because the height question disappears and every argument after it lands one step out of place. Ours builds text with entmake, which does not depend on the style at all.

Three things often repeated that are not true

Often repeatedWhat the 2027 release actually does
Any coordinate lisp is as good as anotherThey differ on axes, decimals and error handling — the three things that decide whether the document is right
A garbled table means a missing fontIt comes from the source being written in an old code page; changing fonts does not fix it
Getting the figures into Excel means retypingWrite straight to .csv from the lisp and open it

Frequently asked questions

The figures came out with no decimals. Why?

That is DIMZIN. Set it to 0 before running, or use the file from this article, which handles it and restores the old value.

Why does the X column hold the vertical figure?

Because Vietnamese surveying puts X on the north axis. AutoCAD calls the vertical axis Y, so the table has to swap. For an architectural plan, choose Cad and nothing is swapped.

Is it slow with hundreds of points?

No. The command only draws lines and text and calls nothing heavy. The time goes into clicking the points.

I clicked a wrong point. Now what?

Type U once. The whole pass is wrapped as a single undo step, so one press is enough.

Excel puts the whole csv in one column.

Excel is expecting semicolons as the separator. Import the file and choose comma, or change the list separator in the Windows regional settings.

About the author

TS. Đỗ Quốc Hoàng — Vice Director of the Institute of Information Technology in Civil Engineering, Hanoi University of Civil Engineering, and a specialist in software development for construction