Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
united

Lisp FILLET đồng loạt nhiều đối tượng theo thứ tự được chọn.

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

Trước tiên xin cảm ơn các anh vì đã quan tâm đọc bài!

Như tiêu đề, em đang cần 1 lisp fillet hàng loạt đối tượng theo thứ tự chọn sẵn. Ví dụ như hình: Các đối tượng được chọn theo thứ tự từ 1 đến 5 sẽ fillet với các đối tượng từ 1' đến 5'.

Mong các anh giúp đỡ!

PS: do không hiểu gì về lisp nên có gì mong các anh bỏ qua.

Untitled.png

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
16 phút trước, gia_bach đã nói:

Lisp này có ưu điểm gì so với lệnh Fillet của CAD ?

Ưu điểm là dù không biết tùy chọn "M" vẫn dùng được, hehe! Có lẽ chủ topic chưa sử dụng chức năng Multiple?

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
1 giờ} trướ}c, Doan Van Ha đã nói:

Ưu điểm là dù không biết tùy chọn "M" vẫn dùng được, hehe! Có lẽ chủ topic chưa sử dụng chức năng Multiple?

+ Với tùy chọn "Multyple" , em nghĩ nó cũng không nhanh hơn bình thường là bao ^^ . Chắc bằng thời gian nhấn 1 nút "Cách"  :v

+ Chắc chủ thớt này muốn bo tròn , nhưng 2 tập đối tượng này xa nhau quá. Nên mới yêu cầu vậy:

 

(defun c:test ( / A B I)
; Danh Cong - Cadviet.com
(setq     a (ssget '((0 . "*LINE")))
        b (ssget '((0 . "*LINE")))
        i 0)
(or radianR (setq radianR 1))
(setq radianR (cond ((getreal (strcat "\nNhap ban kinh: < " (rtos radianR 2 2) " >:")))(radianR))) 
(if (= (sslength a) (sslength b))
      (progn    (setvar "FILLETRAD" radianR)
            (repeat (sslength a)
            (progn     (command "FILLET" (ssname a i) (ssname b i))
                    (setq i (+ i 1)))))
    (alert "So luong 2 ben khong bang nhau")
    ); end if
  (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
4 phút trước, gia_bach đã nói:

Lisp này có ưu điểm gì so với lệnh Fillet của CAD ?

Dạ em thường xuyên phải Fillet rất nhiều line (pline). Nhiều khi chúng nằm xa nhau nên phải zoom đi zoom lại rất mất thời gian (chưa kể mỏi tay, mỏi mắt).

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

Kiều này chọn 1 loạt 1 lần xong tự nó fillet thì mới nhanh chứ làm như ý chủ thớt thì cần gì list. ^_^

 

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
24 phút trước, Danh Cong đã nói:

+ Với tùy chọn "Multyple" , em nghĩ nó cũng không nhanh hơn bình thường là bao ^^ . Chắc bằng thời gian nhấn 1 nút "Cách"  :v

+ Chắc chủ thớt này muốn bo tròn , nhưng 2 tập đối tượng này xa nhau quá. Nên mới yêu cầu vậy:

 



 

(defun c:test ( / A B I)
; Danh Cong - Cadviet.com
  (setq a (ssget '((0 . "*LINE")))
    b (ssget '((0 . "*LINE")))
    i 0)
  (or radianR (setq radianR 1))
  (setq radianR (cond ((getreal (strcat "\nNhap ban kinh: < " (rtos radianR 2 2) " >:")))(radianR))) 
  (if (= (sslength a) (sslength b))
      (progn     (setvar "FILLETRAD" radianR)
        (repeat (sslength a)
        (progn     (command "FILLET" (cdr (assoc -1 (entget (ssname a i)))) (cdr (assoc -1 (entget (ssname b i)))))
            (setq i (+ i 1)))))
    (alert "So luong 2 ben khong bang nhau")
    ); end if
  (princ))

Cảm ơn anh! Nhưng nó không hoạt động anh ạ. Em dùng CAD2015.

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
13 phút trước, united đã nói:

Cảm ơn anh! Nhưng nó không hoạt động anh ạ. Em dùng CAD2015.

Bạn copy chữ trực tiếp từ lisp nhé! Rồi cho sang 1 file lisp mới, paste vào.

Tải từ diễn đàn về hiện đang bị lỗi.

  • Like 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
6 phút trước, Danh Cong đã nói:

Bạn copy chữ trực tiếp từ lisp nhé! Rồi cho sang 1 file lisp mới, paste vào.

Tải từ diễn đàn về hiện đang bị lỗi.

Oh! Không phải không hoạt động ạ. Mà là không hoạt động với Polyline. Mong anh chỉnh luôn giúp em.

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

Oài thời gian comment trên này vài lần thì thao tác lệnh chắc 5s là xong rồi. Hik. Lạm dụng quá. ^_^

  • 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
13 phút trước, Doan Van Ha đã nói:

@Danh Cong: tại sao phải thế này (cdr (assoc -1 (entget... ?

Chọn 2 tập hợp mà không chèn dòng nhắc dễ nhầm lẫn lắm.

Thêm nữa: Có khi nào ông Hai (2) "không nằm" cùng bà Hai (2') mà nhảy sang nằm với bà Năm (5') không ta???

  • 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
13 phút trước, Danh Cong đã nói:

+ Ờ... Mình chịu... Không biết viết cho Polyline. Chỉ xài cho Line thôi :(  Hoặc "X" nó ra rồi xài ( Không hay ho cho lắm ). Hoặc bạn chờ các bác kinh nghiệm hơn ở trên viết cho :v :v

+ Cái này là cháu.... lỡ dại... ^^ Lỡ tay viết rồi, thôi ko sửa nữa..

+ Chọn 2 tập hợp: Nếu có thì chắc chỉ thêm "Prompt" thôi bác nhỉ. Chứ SSget nó không cho hiển thị dòng nhắc như "Entsel". :-):-)

 

Cái này là do thứ tự chọn rồi anh ạ. Nếu ông "2" mà  lại nằm cùng bà "5' .... thì bao tội lỗi đổ hết đầu chủ thớt thôi . :;):;)

Dạ vậy thì mong anh nào sửa giùm em cho nó hoạt động với POLYLINE luôn ạ. Tại tất cả các đường em Fillet luôn là Polyline dài và lắt léo.

Còn thứ tự Fillet thì dùng tham số "F" khi chọn đối tượng là khỏi lo vấn đề ông "2" bà "5'" ạ.

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
11 giờ trước, united đã nói:

Dạ vậy thì mong anh nào sửa giùm em cho nó hoạt động với POLYLINE luôn ạ. Tại tất cả các đường em Fillet luôn là Polyline dài và lắt léo.

Còn thứ tự Fillet thì dùng tham số "F" khi chọn đối tượng là khỏi lo vấn đề ông "2" bà "5'" ạ.

Liệu có phải vì Polyline có thể dài và lắt léo, nó chẳng biết chọn đoạn nào để Fillet nên nó không cho làm việc với Pline?

Nhưng vẫn hi vọng các anh giúp em vụ này ạ!

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  

×