Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
khang2303

(Nhờ chỉnh sửa) Lisp chuyển cao độ ra file text

Các bài được khuyến nghị

   Tôi đang sử dụng lisp xuất cao độ ra text từ diễn đàn http://www.cadviet.vn/caddata/?act=download17#http://www.cadviet.com/upfiles/3/78855_xuat_cao_do_ra_txt.rar để chạy HS , tuy nhiên gặp phải lỗi:

        - Không xuất thứ tự điểm nên phải vào excel thêm dòng và sửa.

        - Không xuất đủ số lượng điểm đo

       - Tọa độ không chính xác.

Tôi đã tìm hiểu thêm lisp: http://www.cadviet.com/upfiles/3/119051_xuat_text.lsp cho ra thứ tự, số điểm và tọa độ chính xác. tuy nhiên lại không nhận cao độ. Xin nhờ Anh Em trong diễn đàn sửa giúp lisp số 2 (tạm gọi như vậy). Xin trân trọng cảm ơn!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thực tế là có nhiều cách biểu diễn số liệu khác nhau. Bác gửi bản vẽ mẫu của bác lên cho anh em tham khảo thì mới có câu trả lời được.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lisp này xuất điểm từ CAD ra Excel luôn

;=======LISP XUAT DIEM DO CAO RA EXCEL=============
;=============KANGKUNG 29/04/2013==================
(defun C:Text2Excel( / taphop i xlApp xlCells Row TEXT InsertPoint String)
  (vl-load-com)
  (setq taphop(ssget '((0 . "TEXT"))))
  (if (/= taphop nil)
    (progn
      (setq i 0)
      (setq xlApp  (vlax-get-or-create-object "Excel.Application")
	xlCells(vlax-get-property(vlax-get-property(vlax-get-property(vlax-invoke-method(vlax-get-property xlApp 'Workbooks) 'Add) 'Sheets)'Item 1)'Cells)
	Row 1)
      (while (< i (sslength taphop))
	(setq TEXT (entget (ssname taphop i)))
	(if (= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
	  (progn
	    (if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
	      (setq InsertPoint(cdr(assoc 10 TEXT)))
	      (setq InsertPoint(cdr(assoc 11 TEXT)))
	      )
	    (setq String(cdr(assoc 1 TEXT))) (vlax-put-property xlCells 'Item row 1 (itoa Row)) (vlax-put-property xlCells 'Item row 2 (rtos (car InsertPoint) 2 3))
	    (vlax-put-property xlCells 'Item row 3 (rtos (cadr InsertPoint) 2 3)) (vlax-put-property xlCells 'Item row 4 (rtos (caddr InsertPoint) 2 3))
	    (vlax-put-property xlCells 'Item row 5 String) (setq Row (1+ Row))))
	(setq i (1+ i)))
      (vlax-put-property xlApp 'Visible :vlax-true)))
  (princ)
  )
(defun C:T2E() (C:Text2Excel))
(princ "\n                     KangKung - 29/04/2013\n")
(princ "\n           Nhap T2E hoac Text2Excel de chay chuong trinh\n")
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@KK: dùng cái này nguy hiểm:

(if (= (read (cdr (assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))

Bởi (= (read "2.0a") (atof "2.0a")) >> T, trong khi 2.0a không phải là number.

Sao không dùng cái này nhỉ?

(if (distof (cdr (assoc 1 TEXT)))

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×