Đến nội dung


Hình ảnh
- - - - -

Xin Lsp Vẽ Đường Pline Theo Toạ Độ Có Sẵn Trong Excel


  • Please log in to reply
7 replies to this topic

#1 leducthovn

leducthovn

    biết zoom

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

Đã gửi 08 December 2015 - 04:25 PM

Nhờ các bạn giúp cho tôi xin lsp vẽ đường pline nối các điểm có sẵn toạ độ trong file text hoặc excel đã có. Tôi có tìm kiếm lsp đó trên diễn đàn mà không sử dụng được lsp nào. Có quá nhiều toạ độ để vẽ mà đánh lại thì bao giờ mới xong. Mong các bạn giúp. Xin cảm ơn trước.

Tôi có cái lsp đưa cao độ lên cad theo toạ độ cho trước bằng cách: copy phần màu vàng trong bảng excel và paste vào cad là được. Nếu có thể mình áp dụng tương tự với lsp mình nhờ thì tốt quá. Xin cảm ơn!http://www.cadviet.c..._do_len_cad.rar


  • -1

#2 Khang Tan 1312

Khang Tan 1312

    Chưa sử dụng CAD

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

Đã gửi 08 December 2015 - 09:55 PM

mình mới tham gia diễn đàn.

Lisp này mình dùng cũng lâu nhờ copy, tổng hợp và chỉnh lại một vài điểm cho phù hợp với công việc của mình

Bạn xem thử dùng được không nhé

 

Để sử dụng lisp này, bạn cần tạo một file *.txt gồm 4 cột như trong file excel của bạn (bỏ phần màu vàng đi)

Sau khi dùng lệnh "drawpline" thì bạn chọn file vừa tạo ra, vậy là xong.

http://www.cadviet.c...7_drawpline.lsp


  • 0

#3 leducthovn

leducthovn

    biết zoom

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

Đã gửi 09 December 2015 - 12:34 PM

mình mới tham gia diễn đàn.

Lisp này mình dùng cũng lâu nhờ copy, tổng hợp và chỉnh lại một vài điểm cho phù hợp với công việc của mình

Bạn xem thử dùng được không nhé

 

Để sử dụng lisp này, bạn cần tạo một file *.txt gồm 4 cột như trong file excel của bạn (bỏ phần màu vàng đi)

Sau khi dùng lệnh "drawpline" thì bạn chọn file vừa tạo ra, vậy là xong.

http://www.cadviet.c...7_drawpline.lsp

Cảm ơn bạn đã chia sẻ cho tôi nhưng bị lỗi "Unknown command "SPLIT".  Press F1 for help." bạn ạ. Hic


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 09 December 2015 - 05:17 PM

Lệnh là drawpline. Không phải SPLIT.


  • 0

* 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.


#5 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 10 December 2015 - 04:38 PM

Lệnh là drawpline. Không phải SPLIT.

Hề hề hề,

Trong lisp này có sử dụng hàm con split (chắc là để tách chuỗi đọc được thành danh sách các tọa độ). Song người post lisp đả quên không post kèm cả cái hàm con này nên khi chạy lệnh drawpline lisp mới báo lỗi như vầy bác ạ.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 Khang Tan 1312

Khang Tan 1312

    Chưa sử dụng CAD

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

Đã gửi 11 December 2015 - 12:33 AM

cám ơn bác phamthanhbinh nhắc nhở em.. chẳng là mọi thứ em đều sưu tầm từ cadviet thôi ạ..

em đã chép thêm hàm con vào (từ cadviet) và cũng đã test lại thấy nó chạy bình thường.

@ educthovn : bạn chép lại lisp này nghe. Hy vọng hữu ích... mình thấy trên diễn đàn có nhiều lisp còn hay hơn cái này, bạn chịu khó tìm thêm

 

 

(defun c:drawpline ()
  (setq osmode (getvar "OSMODE"))
  (setq coor_list '())
  (setq    tenfile
     (getfiled "Select a File txt" (getvar "dwgprefix") "txt" 8)
  )
  (setq f (open (findfile tenfile) "r"))
  (while (setq Line (read-line f))
    (if    (vl-string-search "\t" Line)
      (setq coor_list (append coor_list (list (cdr (split Line "\t")))))
    )
  )
  (setvar "osmode" 0)
  (setq i 0)
  (command ".pline")
  (while (< i (length coor_list))
    (command (nth i coor_list))
    (setq i (+ 1 i))
  )
  (command "")
  (setvar "osmode" osmode)
)


(defun Split (Str Char / Lst)
  (while (setq Local (vl-string-search Char Str))
    (if    (null Lst)
      (setq Lst    (list (substr Str 1 Local))
        Str    (substr Str (+ Local 2))
      )
      (setq Lst    (append Lst (list (read (substr Str 1 Local))))
        Str    (substr Str (+ Local 2))
      )
    )
  )
  (setq Lst (append Lst (list (read Str))))
)


  • 1

#7 Khang Tan 1312

Khang Tan 1312

    Chưa sử dụng CAD

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

Đã gửi 11 December 2015 - 12:38 AM

Lệnh là drawpline. Không phải SPLIT.

hôm nào bác rỗi chỉ em kiến thức Lee mac với nhé

cám ơn bác trước!


  • 0

#8 leducthovn

leducthovn

    biết zoom

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

Đã gửi 11 December 2015 - 09:37 AM

cám ơn bác phamthanhbinh nhắc nhở em.. chẳng là mọi thứ em đều sưu tầm từ cadviet thôi ạ..

em đã chép thêm hàm con vào (từ cadviet) và cũng đã test lại thấy nó chạy bình thường.

@ educthovn : bạn chép lại lisp này nghe. Hy vọng hữu ích... mình thấy trên diễn đàn có nhiều lisp còn hay hơn cái này, bạn chịu khó tìm thêm

 

 

(defun c:drawpline ()
  (setq osmode (getvar "OSMODE"))
  (setq coor_list '())
  (setq    tenfile
     (getfiled "Select a File txt" (getvar "dwgprefix") "txt" 8)
  )
  (setq f (open (findfile tenfile) "r"))
  (while (setq Line (read-line f))
    (if    (vl-string-search "\t" Line)
      (setq coor_list (append coor_list (list (cdr (split Line "\t")))))
    )
  )
  (setvar "osmode" 0)
  (setq i 0)
  (command ".pline")
  (while (< i (length coor_list))
    (command (nth i coor_list))
    (setq i (+ 1 i))
  )
  (command "")
  (setvar "osmode" osmode)
)


(defun Split (Str Char / Lst)
  (while (setq Local (vl-string-search Char Str))
    (if    (null Lst)
      (setq Lst    (list (substr Str 1 Local))
        Str    (substr Str (+ Local 2))
      )
      (setq Lst    (append Lst (list (read (substr Str 1 Local))))
        Str    (substr Str (+ Local 2))
      )
    )
  )
  (setq Lst (append Lst (list (read Str))))
)

Cảm ơn bạn rất nhiều tuy nhiên hình như vẫn chưa được. Mình đã thử rồi nhưng chưa được. Mình sưu tầm được lsp này đã ok rồi, chia sẻ với anh em nếu cần dùng.http://www.cadviet.c...9122015ver2.lsp


  • 0