Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
6 replies to this topic

#1 khang2303

khang2303

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 April 2013 - 11:48 AM

   Tôi đang sử dụng lisp xuất cao độ ra text từ diễn đàn http://www.cadviet.v...o_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.c...1_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!


  • 0

#2 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 April 2013 - 12:28 PM

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.


  • 0

#3 khang2303

khang2303

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 29 April 2013 - 01:58 PM

Biểu diễn số liệu sao cho khi mở file *txt được tạo bằng excel thì mỗi giá trị TT X Y Z nằm trong một cột riêng (tôi vẫn thường phải sửa thủ công như vậy). thanks!http://www.cadviet.c...051_xuat_cd.rar


  • 0

#4 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 29 April 2013 - 04:12 PM

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")

  • 1

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 29 April 2013 - 04:49 PM

@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)))


  • 2

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 29 April 2013 - 05:24 PM

Cảm ơn bác Hà nhiều. Hàm này gọn mà hay. Đã sửa lại Lisp trên theo góp ý của bác.


  • 1

#7 khang2303

khang2303

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 02 May 2013 - 12:31 PM

Cảm ơn Các bạn nhiều!


  • 0