Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
hmt

xin giúp lisp nối các block bằng pline

Các bài được khuyến nghị

hmt    11

chao  a chị e trên 4rum. Hiện e cần mọi ng giúp đỡ 1 chút ạ, e có 1 bản vẽ có khá nhiều block mà cần nối các block này lại bằng pline e có tìm đc lisp b2pl của bác ket nhưng toàn hiện lỗi:  no function definition: ST:SS->LISTBASEPOINT.  mong mọi ng giúp e . Bản vẽ và lisp của bác ketxu e xin up dưới đây: 

 http://www.cadviet.com/upfiles/3/48377_new_block_1.dwg

 

http://www.cadviet.com/upfiles/3/48377_b2pl_b2t.lsp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

chao  a chị e trên 4rum. Hiện e cần mọi ng giúp đỡ 1 chút ạ, e có 1 bản vẽ có khá nhiều block mà cần nối các block này lại bằng pline e có tìm đc lisp b2pl của bác ket nhưng toàn hiện lỗi:  no function definition: ST:SS->LISTBASEPOINT.  mong mọi ng giúp e . Bản vẽ và lisp của bác ketxu e xin up dưới đây: 

 http://www.cadviet.com/upfiles/3/48377_new_block_1.dwg

 

http://www.cadviet.com/upfiles/3/48377_b2pl_b2t.lsp

Hề hề hề,

Nối bằng cái chi cũng cần phải nói rõ nguyên tắc nối mới được. Nếu không nó nối tùm lum ra cái giống oẳn tà roằn thì biết kiện ai????

Hàm ST:SS=>BASEPOINTLIST của bác Ketxu là để láy ra các basepoint của các block rồi sắp xếp lại theo một trật tự nào đó. Cái trật tự này chưa hẳn đã giống cái bạn cần nên cho dù bạn có hàm này cũng cần phải check lại xem nó có khớp với yêu cầu của bạn hay không.

Nếu muốn có lisp bạn hãy nêu rõ yêu cầu mà bạn muốn bằng văn bản và hình vẽ cụ thể.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tot77    501

Bạn dùng thử cái này, cái này cách làm khác không giống của bác Ket.

Đầu tiên chọn điểm chèn của block đầu tiên, rồi rê chuột đến đâu nó vẽ đến đó. Khi rê để ý cái hình vuông màu số 5, muốn tăng kích thước hình vuông bấm T (không cần enter, chỉ T thôi) , muốn giảm bấm G , muốn undo bấm U. Dứt lệnh mới bấm enter.

Khi rê thì dùng chuột giữa để zoom.

 

(defun c:apl(/ pnt ctro l done p1 p2 p3 p4 ss ssn tg os)
  (setq os (getvar 'osmode))
  (mapcar 'setvar (list 'osmode 'plinewid) '( 72 0))
  (setq pnt (getpoint "Chon diem dau:") 
ctro 5
tg 1
l nil
done nil)  
  (command "pline" pnt)
  (prompt "\nChon diem tiep theo <Tang/Giam/Undo>:")
  (while (and (setq pnt (grread t)) (not done))
    (cond ((= 5 (car pnt))
  (setq p1 (polar (polar (last pnt) 0 (* -0.5 ctro)) 1.5708 (* -0.5 ctro))
p2 (polar p1 0 ctro)
p3 (polar p2 1.5708 ctro)
p4 (polar p3 0 (- ctro)))
  (redraw) (grvecs (list 5 p1 p2 p2 p3 p3 p4 p4 p1))
  (if (and (setq ss (ssget "C" p1 p3 '(( 0 . "INSERT"))))
   (not (equal (last l) (ssname ss 0))))      
    (progn
      (setq ssn (ssname ss 0))
      (setq l (append l (list ssn)))
      (command (cdr (assoc 10 (entget ssn))))
     )
  )) 
  ((and (= 2 (car pnt)) (= (last pnt) 116)) (setq ctro (+ ctro tg)))
  ((and (= 2 (car pnt)) (= (last pnt) 103)) (setq ctro (- ctro tg)))
  ((and (= 2 (car pnt)) (= (last pnt) 117))
   (command "u")
   (setq l (vl-remove (last l) l)))
 
  ((or (and (= 2 (car pnt)) (or (= (last pnt) 13) (= (last pnt) 32))) (= 3 (car pnt)))
(setq done t))
    )
  )
  (command "") (redraw) (setvar 'osmode os)
  (princ)
)
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tot77    501

 Khổ với bác Ha ghê, user nếu lỡ bật caplock thì user ráng mà làm lại thôi, chứ bắt lsp phải chiều chuộng user thì mệt cho lsp quá!!  :wub:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.680

 Khổ với bác Ha ghê, user nếu lỡ bật caplock thì user ráng mà làm lại thôi, chứ bắt lsp phải chiều chuộng user thì mệt cho lsp quá!!  :wub:

:lol: Chả là mới lướt qua thì thấy 3 chứ không phải 6. Mà cách đây mấy hôm tôi vừa ngoáy cái này, với 2n, nên làm khổ tí thôi. :lol:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hmt    11

thanks 2 bác cái lisp của bác TOT dùng vẫn thấy lâu lâu bác ạ. hic nếu e có cả trăm cái block như vậy thì e rê cũng mỏi tay luôn :( liệu có thể nào chỉ cần quét qua các block là nó tự động nối lại dc không ạ.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.680

93 cái y/c rồi mà cái y/c thứ 94 rất chi là khó hiểu. Nối theo quy luật nào? Dù có 3 block hay 3 triệu block thì nếu y/c rõ ràng cũng có thể giải quyết nhanh thôi.  

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hmt    11

ví dụ như nối các block theo khoảng các giữa chúng. ví dụ khoảng cách giữa các block trong khoảng bao nhiêu sẽ đc nối lại với nhau. có thể viết như thế dc k ạ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.680

ví dụ như nối các block theo khoảng các giữa chúng. ví dụ khoảng cách giữa các block trong khoảng bao nhiêu sẽ đc nối lại với nhau. có thể viết như thế dc k ạ?

Tôi dòm bản vẽ của bạn rồi. Xem ra cách bạn muốn nối không giống với câu bạn nói ở trên.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hmt    11

à đúng rồi nếu chỉ khoảng cách thôi thì chưa đủ , nối theo thứ tự tọa độ x tăng dần , nôi block có tọa độ x gần nhất lai với nhau ạ 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.680

à đúng rồi nếu chỉ khoảng cách thôi thì chưa đủ , nối theo thứ tự tọa độ x tăng dần , nôi block có tọa độ x gần nhất lai với nhau ạ 

Cực kỳ lủng củng! Nếu cứ diễn đạt như thế thì nên dùng lisp của anh Tot là ổn rồi. Còn muốn 1 phát ăn ngay thì phải có quy luật thật rõ ràng.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
nhoclangbat    382

Hề hề hề,

Nối bằng cái chi cũng cần phải nói rõ nguyên tắc nối mới được. Nếu không nó nối tùm lum ra cái giống oẳn tà roằn thì biết kiện ai????

Hàm ST:SS=>BASEPOINTLIST của bác Ketxu là để láy ra các basepoint của các block rồi sắp xếp lại theo một trật tự nào đó. Cái trật tự này chưa hẳn đã giống cái bạn cần nên cho dù bạn có hàm này cũng cần phải check lại xem nó có khớp với yêu cầu của bạn hay không.

Nếu muốn có lisp bạn hãy nêu rõ yêu cầu mà bạn muốn bằng văn bản và hình vẽ cụ thể.

-mí cái block đó nhoc chả thấy nó nó có quy tắc nào hết ^^, giống nhoc đi đo về phun điểm lên cứ cho là nó theo 1 phương mà ko có lược đồ đố biết đc nối thế nào :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×