Thứ Bảy, 22 tháng 2, 2025

Tự Động Chèn Text vào AutoCAD từ CSV với AutoLISP | Insert text from list of point (csv) | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

CHÈN TEXT VÀO AUTOCAD TỪ DANH SÁCH TỌA ĐỘ CSV


1. GIỚI THIỆU

Trong quá trình thiết kế bản vẽ AutoCAD, việc chèn text tại các vị trí xác định theo danh sách tọa độ có sẵn là một yêu cầu phổ biến. Để tối ưu hóa công việc này, ứng dụng AutoLISP được phát triển nhằm tự động chèn text vào bản vẽ từ danh sách tọa độ được lưu trữ trong tệp CSV.


2. CHỨC NĂNG CHÍNH

  • Đọc dữ liệu tọa độ X, Y và nội dung text từ tệp CSV.

  • Tự động chèn text vào bản vẽ AutoCAD tại các vị trí tương ứng.

  • Hỗ trợ tùy chỉnh chiều cao chữ, góc xoay và kiểu text.

  • Giúp tiết kiệm thời gian và giảm thiểu sai sót khi nhập liệu thủ công.


3. CÁCH HOẠT ĐỘNG

  1. Người dùng chuẩn bị một tệp CSV với định dạng:

    Code:
    X,Y,Text
    100,200,Điểm A
    150,250,Điểm B
    200,300,Điểm C
  2. Chạy ứng dụng AutoLISP trong AutoCAD.

  3. Chọn tệp CSV cần nhập.

  4. Ứng dụng sẽ tự động chèn text vào các vị trí tương ứng trong bản vẽ.


4. MÃ NGUỒN AUTOLISP MẪU

Dưới đây là một đoạn mã AutoLISP giúp thực hiện chức năng trên:

Lưu mã sau dưới dạng tệp tin IPT.lsp
Code:
;;======ghi text ra mn hinh
(defun wtg(txt p g  h / sty d h1 h2 wf) ;;;Write txt on graphic screen at p
(setq
   sty(getvar "textstyle")
	
   d (tblsearch "style" sty)
   h1 (cdr (assoc 40 d))
   h2 (cdr (assoc 42 d))
   wf (cdr (assoc 41 d))

)


(entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbText") (cons 7 sty) (cons 40 h) (cons 50 g) (cons 41 wf) (cons 1 txt) (cons 10 p) (cons 11 p)
(cons 71 0) (cons 72 0) (cons 73 0)))

)
;;=bay loi
(defun myerror (s)				  
 (cond
((= s "quit / exit abort") (princ))
((/= s "Function cancelled") (princ (strcat "\nError: " s)))
 )
 (setvar "cmdecho" cmd); Restore saved modes
 (setvar "osmode" os)
 (setq *error* OLDERR)			 
 (princ)
)
(defun c:thongtin()
(alert (strcat "\nNguoi viet:Lam Nguyen Trong-SDT-Zalo:0377390879-Email:trongag113@gmail.com-fb:www.facebook.com/trong.lam.7161" 
        "\nNhap lenh ipt de chay chuong trinh"))

)
(c:thongtin)
;; main
(defun c:ipt (/ fn lst lstgiatri lstkq data lsttoado)
  (setq cmd (getvar "cmdecho"))
(setq os (getvar "osmode"))
(setvar "osmode" 0)
 ;(setvar"pdmode" 66)
 ; (setvar "pdsize" 5) 
(SETQ OLDERR *error*
  *error* myerror)
  (setq vt 0)
  (setq h (getreal "\nNhap chieu cao text"))
  (if (= fn nil)
    (setq fn (getfiled "\nChon file excel (csv) chua cac gia tri text" "D:\\" "csv" 8))
  )
  (setq fl (open fn "r"))
  (while (setq rl (read-line fl))

    (while (/= nil vt)
      
      (if (= (substr rl (strlen rl) 1) ",")
	(setq rl (substr rl 1 (- (strlen rl) 1)))
	(setq rl rl)
     )
      ;;(print rl)
       (setq vt (vl-string-search "," rl 1))
       (if (= vt nil)
	(setq kq rl) 
        (progn
        (setq kq (substr rl 1 vt))
        (setq rl (substr rl (+ vt 2) (- (strlen rl) (strlen kq) 1)))
	;;(print (strcat kq "-" rl))
       
      ))
      (setq data  (append data (list kq)))	
    )   
(setq vt 0)
    
    (setq lstkq (append lstkq (list data)))
    (setq data nil)
  )
  (setq i 1)
 ;;  (print lstkq)
  (while (<= i (- (length lstkq) 1))
    (setq x (atof (cadr (nth i lstkq))))
    (setq y (atof (caddr (nth i lstkq))))
    (setq toado (list x y))
    (setq lsttoado
	   (append  lsttoado (list toado)))
    (setq giatri(cadddr (nth i lstkq)))
    (setq lstgiatri (append lstgiatri (list giatri)))
    (setq i (1+ i))
  )
  (setq i 0)
  (while (< i (length lsttoado))
    (wtg (nth i lstgiatri) (nth i lsttoado) 0 h)
    (setq i (1+ i))
  
  ) 
(setq lstdiem1 lsttoado)
;;(COMMAND ".line" (nth 0 lstdiem1) (list 0 0) "")
(command ".zoom" "W" (nth 0 lstdiem1) (nth (- (length lstdiem1) 1) lstdiem1))
(setvar "osmode" os)
(command "undo" "end")
(close fl)
)

5. HƯỚNG DẪN SỬ DỤNG

  • Lưu mã AutoLISP trên vào một tệp .lsp.

  • Tải tệp .lsp vào AutoCAD bằng lệnh APPLOAD.

  • Gõ lệnh InsertTextFromCSV trong AutoCAD để chạy ứng dụng.

  • Chọn tệp CSV cần nhập.

  • Kiểm tra bản vẽ để đảm bảo text đã được chèn đúng vị trí.


6. KẾT LUẬN

Ứng dụng AutoLISP này giúp tăng hiệu suất làm việc khi cần chèn nhiều text vào bản vẽ AutoCAD theo danh sách tọa độ. Việc tự động hóa quy trình nhập liệu giúp giảm thiểu sai sót và tiết kiệm thời gian đáng kể. 🚀

Bạn có thể mở rộng ứng dụng bằng cách thêm tùy chọn về chiều cao chữ, kiểu chữ hoặc nhập dữ liệu từ các định dạng khác như Excel. Chúc bạn thành công! 🎯


Nguồn:


Tác giả: Lam Nguyen Trong-SDT-Zalo:0377390879-Email:trongag113@gmail.com-fb:www.facebook.com/trong.lam.7161

Link tải (MediaFire)

📥 https://www.mediafire.com/



---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:

Đăng nhận xét

Tự Động Chèn Text vào AutoCAD từ CSV với AutoLISP | Insert text from list of point (csv) | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉