Đến nội dung


Hình ảnh
- - - - -

Nhờ viết lisp tạo block từ các đối tượng giống nhau hay từ block đã bị phá


  • Please log in to reply
27 replies to this topic

#21 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 26 March 2013 - 10:22 AM

Những vấn đề nảy sinh mình đã cho trong này rồi nhé

mong bạn Phan Thanh Bình động não tiếp giúp mình và những người quan tâm

http://www.cadviet.c..._vi_du_tiep.rar

Hề  hề hề,

1/- Bạn hình như không đọc lisp nên không hiểu cơ chế làm việc của lisp này.

Nó thay thế các nhóm đối tượng giống nhau bởi một block được tạo từ một nhóm đối tượng chuẩn. Do vậy nếu nhóm đối tượng cần thay thế không hoàn toàn giống với nhóm đối tượng chuẩn thì đương nhiên nó sẽ mất đi các đặc tính riêng của nó mà chỉ còn các đặc tính y chang nhóm đối tượng chuẩn mà thôi hoặc nó sẽ bị bổ sung thêm các đặc tính riêng của nhóm đối tượng chuẩn. 

Vì thế khi sử dụng cần phải chọn đối tượng chuẩn phù hợp. Đây là việc khó nhất để lisp có thể làm việc đúng.

2/- Lisp này được sử dụng với đường bao ngoài là vòng tròn. Nếu muốn sử dụng với các đường bao ngoài là polyline thì cần phải bổ xung kha khá code nữa. Vì thế trước mắt nếu bạn muốn dùng nó với các đường bao là polyline bạn có thể tạo thêm một vòng tròn bao ngoài các nhóm đối tượng đó rồi sử dụng. Sau đó xoá vòng tròn này đi.

3/- Không thể có chuyện mất truy bắt điểm cũ bởi mình đã trả lại biến hệ thống osmode về giá trị cũ trong lisp. Co1 nhẽ bạn đã chép thiếu code chăng????


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

#22 canu_a7

canu_a7

    biết vẽ arc

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

Đã gửi 26 March 2013 - 02:34 PM

đúng là thời đại học mình cũng có học qua lập trình lisp nhưng không có điều kiện sử dụng nên cũng không có khả năng xem file lisp nữa chỉ biết dùng thôi và lại nhìn Phạm Thanh Bình và các pro ở đây thì nản luôn không biết bao giờ mới được như mọi người

tiện đây mình cũng có ý kiến này chúng ta đã có công cụ chọn đối tượng rất mạnh là quick select và filter vậy tại sao ta lại không làm một cái lisp hiện layiso các đối tượng được chọn (chỉ hiện các đối tượng được chọn) để có thể dễ dàng quản lý chỉnh sửa nhỉ

nếu có thể mong Phạm Thanh Bình ra tay một lần nữa 

mình tự hỏi không biết có phải lập một topic mới không nhỉ


  • 0

#23 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 26 March 2013 - 02:38 PM

đúng là thời đại học mình cũng có học qua lập trình lisp nhưng không có điều kiện sử dụng nên cũng không có khả năng xem file lisp nữa chỉ biết dùng thôi và lại nhìn Phạm Thanh Bình và các pro ở đây thì nản luôn không biết bao giờ mới được như mọi người

tiện đây mình cũng có ý kiến này chúng ta đã có công cụ chọn đối tượng rất mạnh là quick select và filter vậy tại sao ta lại không làm một cái lisp hiện layiso các đối tượng được chọn (chỉ hiện các đối tượng được chọn) để có thể dễ dàng quản lý chỉnh sửa nhỉ

nếu có thể mong Phạm Thanh Bình ra tay một lần nữa 

mình tự hỏi không biết có phải lập một topic mới không nhỉ

Hề hề hề,

Cái này trên diễn đàn có rồi gọi là lisp ẩn hiện các đối tượng được chọn. Bạn hãy cố gắng tìm kiếm nhé.


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

#24 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 27 March 2013 - 12:53 AM

Những vấn đề nảy sinh mình đã cho trong này rồi nhé

mong bạn Phan Thanh Bình động não tiếp giúp mình và những người quan tâm

http://www.cadviet.c..._vi_du_tiep.rar

Hề hề hề,

Đây là lisp mở rộng cho phép chọn đường bao là đường lwpolyline. Cách sử dụng tương tự như lisp cũ. Bạn phải lưu ý rằng các nhóm đối tượng cần block phải đảm bảo hoàn toàn giống với nhóm đối tượng bạn chọn làm mẫu chuẩn ban đầu.

Bạn hãy cố gắng tìm hiểu thêm về lisp để có thể làm chủ được công việc của bạn. Chúc bạn thành công.

 

(Defun c:blndt (/ oldos dtm lo pc d la ss ss1 ss2 bln pt plst pls1)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(setq dtm (car (entsel "\n Chon doi tuong chuan"))
          lo (cdr (assoc 0 (entget dtm)))
)
(if (= lo "CIRCLE")
    (setq pc (cdr (assoc 10 (entget dtm)))
          d (cdr (assoc 40 (entget dtm)))
          la (cdr (assoc 8 (entget dtm)))
          ss (ssget "w" (list (- (car pc) (+ d  0.01)) (- (cadr pc) (+  d  0.01))) (list (+ (car pc) d 0.01) (+ (cadr pc) d 0.01)))  )
    (if (= lo "LWPOLYLINE")
          (setq plst (acet-geom-vertex-list dtm)
                   pc (car plst)
                   la (cdr (assoc 8 (entget dtm)))
                   d (cdr (assoc  90 (entget dtm)))
                   ss (ssget "wp" plst)  )
    )
)
(setq bln (getstring T "\n Nhap ten block: " ))
(if (not (tblsearch "block" bln))
    (command "block" bln pc ss dtm "")
    (progn 
          (alert "\n Ten block da co,  yeu cau nhap ten khac " )
          (setq bln nil)
    )
)
(while (/= bln nil)
      (if (= lo "CIRCLE")
          (progn 
                (setq ss1 (acet-ss-to-list (ssget (list (cons 0 lo) (cons 8 la) (cons 40 d)))))
                (foreach en ss1
                        (setq pt (cdr (assoc 10 (entget en)))
                                  ss2 (ssget "w" (list (- (car pt) (+ d 0.01)) (- (cadr pt) (+ d  0.01))) (list (+ (car pt) d 0.01) (+ (cadr pt) d  
 
0.01)))  )
                        (command "erase" ss2 "")
                        (command "insert" bln pt 1 1 0)
                )
          )
          (if (= lo "LWPOLYLINE")
               (progn
                        (setq ss1 (acet-ss-to-list (ssget (list (cons 0 lo) (cons 8 la) (cons 90 d)))))
                        (foreach en ss1
                                (setq pt (car (setq pls1 (acet-geom-vertex-list en)))
                                          ss2 (ssget "wp" pls1)  )
                                (command "erase" ss2 en "")
                                (command "insert" bln pt 1 1 0)
                        )
               )
         )
     )
     (command "insert" bln pc 1 1 0)
     (setq bln nil)
)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
       

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

#25 canu_a7

canu_a7

    biết vẽ arc

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

Đã gửi 27 March 2013 - 09:00 AM

Cảm ơn Phạm Thanh Bình đã động viên có lẽ sau vụ này mình cũng phải cố gắng học hỏi thêm về Auto lisp 

còn về phần lisp hiện Iso đối tượng thì không biết Pham Thanh Binh có hiểu sai ý của mình không nếu ý của PTB là lisp vis &invis thì nó chưa đúng ý mình lắm vì lisp này chỉ có thể ẩn và hiện đối tượng chứ chưa thể hiện iso đối tượng

một lần nữa cảm ơn đã nhiệt tình giúp đỡ!


  • 0

#26 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 27 March 2013 - 10:01 AM

Cảm ơn Phạm Thanh Bình đã động viên có lẽ sau vụ này mình cũng phải cố gắng học hỏi thêm về Auto lisp 

còn về phần lisp hiện Iso đối tượng thì không biết Pham Thanh Binh có hiểu sai ý của mình không nếu ý của PTB là lisp vis &invis thì nó chưa đúng ý mình lắm vì lisp này chỉ có thể ẩn và hiện đối tượng chứ chưa thể hiện iso đối tượng

một lần nữa cảm ơn đã nhiệt tình giúp đỡ!

Hề hề hề,

Đúng là mình không hiểu đúng ý bạn.

Khái niệm Iso đối tượng nghĩa là gì nhỉ????


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

#27 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 March 2013 - 01:12 PM

DÙng Cad đời cao mà Object Isolate thôi bạn. Còn không thì cái này trên diễn đàn cũng có lisp rồi. Mình nhớ nó có một dòng thôi (nếu áp dụng Express)

 

P/s : link đây rồi, 3 dòng cho 3 lisp Ẩn - hiện - Isolate . Lisp này gắn với kỉ niệm lần đầu tiên lên CV xin Lisp n k được mod ngó tới :)

 

http://www.cadviet.c...177#entry150515


  • 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


#28 canu_a7

canu_a7

    biết vẽ arc

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

Đã gửi 27 March 2013 - 05:09 PM

rất đúng ý mình cảm ơn ketxu nhé.


  • 0