Đến nội dung


Hình ảnh
- - - - -

Nhờ các cao thủ viết hộ Lisp copy với nội dung bên dưới


  • Please log in to reply
27 replies to this topic

#21 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 21 February 2011 - 05:04 PM

Gửi bạn Nguyentuyen6,
Lisp của bạn tương đối ổn nhưng khi áp dụng với block thì gặp vấn đề sau:
- Layer ngoài của block thuộc lớp hiện hành nhưng layer trong vẫn ko đổi. Mình muốn cả layer trong và ngoài đều đổi thì sẽ tiện hơn khi format lại đối tượng.
Cám ơn bạn nhiều.
Hoàng

Nhắc nhở bạn không nên port nhiều câu hỏi trùng nhau trên diễn đàn. Bạn lập nhiều topic và hỏi những vấn đề đã được giải quyết từ lâu trên diễn đàn. Bạn hãy search trước khi đặt câu hỏi bạn nhé.
  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#22 hoangtdh

hoangtdh

    biết vẽ ellipse

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

Đã gửi 21 February 2011 - 05:20 PM

Gửi Tú,
Ok. Mình sẽ rút kinh nghiệm cho các lần hỏi sau.
Hoàng
  • 0

#23 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 21 February 2011 - 09:48 PM

Gửi bạn Nguyentuyen6,
Lisp của bạn tương đối ổn nhưng khi áp dụng với block thì gặp vấn đề sau:
- Layer ngoài của block thuộc lớp hiện hành nhưng layer trong vẫn ko đổi. Mình muốn cả layer trong và ngoài đều đổi thì sẽ tiện hơn khi format lại đối tượng.
Cám ơn bạn nhiều.
Hoàng

Bạn dùng cái này nhé:
Bạn dùng từ "cao thủ" làm mọi người thấy "sợ" đấy

(defun moddxf (dxf chdxf ss)
(entmod
(subst (cons dxf chdxf) (assoc dxf (entget ss)) (entget ss))
)
)
;nguyentuyen6 @ Cadviet
(defun c:cl (/ ss en el i curla)
(setvar "cmdecho" 0)
(command ".UNDO" "E")
(princ "\nChon doi tuong chuyen ve layer hien hanh :")
(setq curla (getvar "clayer"))
(setq ss (ssget ))
(setq i 0)
(while (< i (sslength ss))
(setq en (ssname ss i))
(if (/= (cdr (assoc 0 (entget en))) "INSERT")
(progn (if (/= (cdr (assoc 8 (entget en))) curla)
(moddxf 8 curla en)
)
)
(upwblock en)
)
(entupd en)
(setq i (1+ i))
)
; (command ".REGEN")
(command ".UNDO" "E")
(setvar "cmdecho" 1)
(princ "\n....DONE....")
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun upwblock (blk / s en els el)
(setq s (cdr (assoc 2 (entget blk))))
(setq en (cdr (assoc -2 (tblsearch "BLOCK" s))))
(while en
(setq els (entget en))
(if (wcmatch (cdr (assoc 0 els)) "INSERT")
(upwblock en)
(progn (if (/= (cdr (assoc 8 (entget en))) curla)
(moddxf 8 curla en)
)
)
)
(entupd en)
(setq en (entnext en))
)
)

  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#24 hoangtdh

hoangtdh

    biết vẽ ellipse

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

Đã gửi 22 February 2011 - 09:04 AM

Gửi bạn Tuyến,
Do mình ko download được cl.lsp của bạn nên mình copy đoạn code và tạo ra cl.lsp nhưng khi chạy báo lỗi sau:

Command: ap
APPLOAD cl.lsp successfully loaded.
Command: cl
Unknown command "CL". Press F1 for help.

Mình post cl.lsp lên để bạn kiểm tra lại giúp mình:
http://www.cadviet.c...pfiles/3/cl.lsp

Hoàng
  • 0

#25 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 22 February 2011 - 04:24 PM

Gửi bạn Tuyến,
Do mình ko download được cl.lsp của bạn nên mình copy đoạn code và tạo ra cl.lsp nhưng khi chạy báo lỗi sau:

Command: ap
APPLOAD cl.lsp successfully loaded.
Command: cl
Unknown command "CL". Press F1 for help.

Mình post cl.lsp lên để bạn kiểm tra lại giúp mình:
http://www.cadviet.c...pfiles/3/cl.lsp

Hoàng

http://www.cadviet.com/upfiles/3/cl_2.lsp

Bạn download cái này về nhé, hình như download của diễn đàn bị hỏng
  • 0

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#26 hoangtdh

hoangtdh

    biết vẽ ellipse

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

Đã gửi 22 February 2011 - 04:46 PM

Gửi bạn Tuyến,
Lisp này của bạn khi chạy mà chọn block thì layer trong block đổi thành layer hiện hành còn layer ngoài vẫn giữ layer cũ.
Mình copy code cl.lsp cũ của bạn và paste thêm vào cl2.lsp và đổi tên lệnh thành cl1. Dùng phối hợp cl và cl1 thì đạt được kết quả đề ra là cả layer trong và ngoài block đều thuộc layer hiện hành.
Bạn có thể gộp 2 đoạn code này thành 1 và dùng chung tên lệnh là cl được không.
Cám ơn bạn nhiều.
Hoàng
  • 0

#27 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 22 February 2011 - 05:51 PM

Gửi bạn Tuyến,
Lisp này của bạn khi chạy mà chọn block thì layer trong block đổi thành layer hiện hành còn layer ngoài vẫn giữ layer cũ.
Mình copy code cl.lsp cũ của bạn và paste thêm vào cl2.lsp và đổi tên lệnh thành cl1. Dùng phối hợp cl và cl1 thì đạt được kết quả đề ra là cả layer trong và ngoài block đều thuộc layer hiện hành.
Bạn có thể gộp 2 đoạn code này thành 1 và dùng chung tên lệnh là cl được không.
Cám ơn bạn nhiều.
Hoàng

Của bạn đây:

http://www.cadviet.c...iles/3/cl_3.lsp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun moddxf (dxf chdxf ss)
(entmod
(subst (cons dxf chdxf) (assoc dxf (entget ss)) (entget ss))
)
)
;nguyentuyen6 @ Cadviet
(defun c:cl (/ ss en el i curla)
(setvar "cmdecho" 0)
(command ".UNDO" "E")
(princ "\nChon doi tuong chuyen ve layer hien hanh :")
(setq curla (getvar "clayer"))
(setq ss (ssget))
;;;;;;;;
(setq i 0)
(while (< i (sslength ss))
(setq en (ssname ss i))
(if (/= (cdr (assoc 8 (entget en))) curla)
(moddxf 8 curla en)
)
(if (= (cdr (assoc 0 (entget en))) "INSERT")
(progn
(moddxf 8 curla en)
(upwblock en)
)
)
(entupd en)
(setq i (1+ i))
) ; (command ".REGEN")
(command ".UNDO" "E")
(setvar "cmdecho" 1)
(princ "\n....DONE....")
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun upwblock (blk / s en els el)
(setq s (cdr (assoc 2 (entget blk))))
(setq en (cdr (assoc -2 (tblsearch "BLOCK" s))))
(while en
(setq els (entget en))
(if (wcmatch (cdr (assoc 0 els)) "INSERT")
(upwblock en)
(progn (if (/= (cdr (assoc 8 (entget en))) curla)
(moddxf 8 curla en)
)
)
)
(entupd en)
(setq en (entnext en))
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#28 hoangtdh

hoangtdh

    biết vẽ ellipse

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

Đã gửi 22 February 2011 - 06:11 PM

Gửi bạn nguyentuyen6,
Chuẩn ko cần chỉnh, cám ơn bạn nhiều.
Hoàng
  • 0