Đến nội dung


Hình ảnh
- - - - -

Nhờ viết lisp dọn mặt bằng siêu tốc


  • Please log in to reply
44 replies to this topic

#41 nguyen tuan hung

nguyen tuan hung

    biết vẽ arc

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

Đã gửi 22 March 2011 - 10:58 AM

Cám ơn anh rất nhiều.
Em còn kém lắm mong anh giúp đỡ
  • 0

#42 kloud7

kloud7

    biết zoom

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

Đã gửi 31 March 2012 - 11:23 AM

Bạn dùng thử cái này coi sao. Với các dim mình chưa giải quyết do chưa hiểu hết, cần tìm hiểu thêm. Với các block, mặc dù mình đã sử dụng phép đệ quy nhưng không hiểu vì sao vẫn chưa triệt để được. Có lẽ các block của bạn còn phức tạp hơn cái mình nghĩ chăng. Hy vọng nó sẽ giúp bạn được phần nào trong công việc.

(defun c:chla (/ nla ss n i lst ent la lsol m k)(setq nla  "Architech")(if (not (tblsearch "layer" nla))(command "layer" "n" nla "c" "8" nla "lt" "continuous" nla ""))(setq ss (ssget)      n (sslength ss)      i 0 )(while (< i n)(setq ent (ssname ss i)      lst (entget ent))(setq la (cdr (assoc 8 lst)))(setq lsol (tblsearch "layer" la))(if (= (cdr (assoc 0 lst)) "INSERT")   (progn        ;;;;;;;;;;;(setq bln (cdr (assoc 2 lst)))        (chbl ent) 	))(if (= (assoc 6 lst) nil)(progn(setq k (cdr(assoc 6 lsol)))(setq lst (append lst (list (cons 6 k))))(entmod lst)))(setq i (1+ i)))(command "change" ss "" "p" "la" nla "c" "8" "")(setvar "INSUNITS" 4)(setvar "INSUNITSDEFSOURCE" 4)(setvar "INSUNITSDEFTARGET" 4)(princ));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun chbl ( blk / bln en els )(setq bln (cdr (assoc 2 (entget blk))))(setq en (cdr (assoc -2 (tblsearch "block" bln ))))(while (/= en nil) 		(setq els (entget en)) 		(if (= (cdr (assoc 0 els)) "INSERT")            (progn         			;;;;;;;;;(setq bln (cdr (assoc 2 els)))                    (chbl en)            )            (progn                            (if (/= (assoc 62 els) nil)                  (setq els (subst (cons 62 8) (assoc 62 els) els))                  (setq els (append (list (cons 62 8)) els))   			)   			(entmod els)   			(entupd en)   		)        ) 		(setq en (entnext en))))

Có gì cần bổ sung bạn cứ nói nhé. Phần về dim mình sẽ bổ sung sau khi ngâm cứu ra.


Thanks bác BINH, lisp của bác dùng dọn mặt bằng rất nhanh. Nhưng em có thắc mắc như thế này nữa:
- Mặt bằng em gửi đính kèm sau khi dọn bằng lisp của bác thì khi thay đổi màu của layer ARCHITECH thì màu của DIM vẫn thay đổi theo.
- Em muốn nhờ bác chỉnh lại 1 ít trong LISP trên để dọn mặt bằng mà giữ nguyên màu, linetype của tất cả đối tượng, chỉ màu DIM về màu 8. Khi cần thiết có thể đổi màu của các đối tượng còn lại theo ý thích bằng cách thủ công đơn giản là kéo Box Color xuống. Sở dĩ như vậy là khi copy chi tiết từ bản vẽ khác vào bản vẽ đang sử dụng thì em muốn giữ nguyên màu của chi tiết đó nhưng đã được dọn dẹp sạch sẽ, như thế khi vẽ thể hiện sẽ dễ hơn ^^.
Bác rảnh rỗi thì giúp em với nhá, So thks !!!
File đính kèm:http://www.cadviet.c...6_drawing_1.dwg
  • 0

#43 theducw87

theducw87

    biết vẽ circle

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

Đã gửi 20 October 2014 - 10:18 AM

Bác Ketxu có thể sửa nội dung lisp Clear để chuyển hết hath thành màu 250 giúp em không? cảm ơn bác.


  • 0

#44 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 October 2014 - 05:52 PM

Trong các lisp, chỗ nào có số 8 thì bạn sửa thành 250 ^^


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#45 theducw87

theducw87

    biết vẽ circle

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

Đã gửi 22 October 2014 - 01:20 PM

Không hẳn thế đâu bác ketxu à. Các thành phần khác em vẫn muốn nó là màu 8 riêng hath thì em muốn chuyển thành 250 thôi ^^


  • 0