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  
nguyencanh160890

XIN HỎI VỀ LỆNH FILLET

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

Chào Anh Chị, chúc Anh Chị một năm mới AN KHANG THỊNH VƯỢNG.

Em có một câu hỏi muốn nhờ sự trợ giúp từ mọi người. Vẽ hai đoạn thẳng vuông góc với nhau, sau đó dùng lệnh fillet để bo cung, ban đầu chọn R=300, nhưng đến khi em muốn nhập bán kính với bán kính R=200 or R=100 thì lại phải nhập tên lệnh lại từ đầu, vậy có cách nào khi mà chọn bán kính R=300, R=200 or R=100 mà không phải nhập lại lệnh Fillet nữa không ạ?

Em cảm ơ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

Lần thứ 1 bạn phải nhập tên, nhưng lần thứ 2, 3,... liên tiếp thì bạn chỉ cần nhấn enter thôi mà. Nếu muốn chơi như bạn thì dùng lisp thôi, nhưng chắc gì nhanh hơn 1 cú enter?

  • 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

Lần thứ 1 bạn phải nhập tên, nhưng lần thứ 2, 3,... liên tiếp thì bạn chỉ cần nhấn enter thôi mà. Nếu muốn chơi như bạn thì dùng lisp thôi, nhưng chắc gì nhanh hơn 1 cú enter?

 

 

Enter chỉ lấy lại lệnh fillet thôi, nhưng vẫn thao tác thêm là chọn R-enter để chọn lại bán kính. em muốn chỉ chọn bán kính 1 lần ví dụ R=300, R=200, R=100 sau đó khi nào mình cần bán kính nào thì lấy bán kính đã nhập từ ban đầu.

Xin nhờ sự hướng dẫn của Anh (Chị).

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

Enter chỉ lấy lại lệnh fillet thôi, nhưng vẫn thao tác thêm là chọn R-enter để chọn lại bán kính. em muốn chỉ chọn bán kính 1 lần ví dụ R=300, R=200, R=100 sau đó khi nào mình cần bán kính nào thì lấy bán kính đã nhập từ ban đầu.

Xin nhờ sự hướng dẫn của Anh (Chị).

Nếu lần 1 bạn phải nhập đầy đủ: tên lệnh >> R >> bán kính rồi chọn đối tượng, thì lần 2 bạn chỉ enter và chọn đối tượng chứ đâu cần phải nhập R, vì bán kính đã mặc định cho bạn rồi mà.

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

Nếu lần 1 bạn phải nhập đầy đủ: tên lệnh >> R >> bán kính rồi chọn đối tượng, thì lần 2 bạn chỉ enter và chọn đối tượng chứ đâu cần phải nhập R, vì bán kính đã mặc định cho bạn rồi mà.

 

 

Bác vẫn chưa hiểu ý của em hay sao ấy, tất nhiên là fillet sẽ mặc định bán kính ban đầu nhập, ví dụ em thao tác 1 đoạn lệnh như sau

fillet enter:

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]: R

Specify fillet radius <0.0000>: 300

đến khi em enter thì vẫn giá trị vẫn là 300, nếu mà muốn bán kính R=200 thì phải nhập lại R rồ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

Theo tôi thì Cad chắc chịu. Không biết ai có cao kiến gì không.

Đây là lisp thỏa mãn nhu cầu của bạn: Fillet Line và Pline rút gọn.

;Doan Van Ha - CADViet.com - Ngay 01/01/2013
;Chuc nang: Fillet Line va Pline rut gon.
(setq bk nil)
(defun C:HA (/ e1 e2 p2 l e ss)
(setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "undo" "be")
(or bk (setq bk 100))
(setq bk (cond ((getdist (strcat "\nNhap ban kinh <" (rtos bk 2) ">:"))) (bk)))
(command "fillet" "R" bk)
(while (null (setq e1 (entsel "\nChon object 1: "))))
(while (null (setq e2 (entsel "\nChon object 2: "))))
(setq p2 (cadr e2))
(setq e2 (car e2))
(if
 (and
  (= (cdr (assoc 0 (entget (car e1)))) "LWPOLYLINE")
  (= (cdr (assoc 0 (entget e2))) "LWPOLYLINE"))
 (progn
  (setq l (entlast))
  (command "explode" e2)
  (setq ss (ssadd))
  (ssadd (setq e (entnext l)) ss)
  (while (setq e (entnext e))
   (ssadd e ss))
  (command "fillet" e1 (nentselp p2))
  (command "pedit" e1 "_J" ss "" "")
  (command "erase" ss ""))
 (command "fillet" e1 (nentselp p2)))
(setvar "cmdecho" cmd) (command "undo" "e") (princ))

P/S (15h30): bổ sung thêm Pline.

  • 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

Theo tôi thì Cad chắc chịu. Không biết ai có cao kiến gì không.

Đây là lisp thỏa mãn nhu cầu của bạn: Fillet rút gọn.

;Doan Van Ha - CADViet.com - Ngay 01/01/2013
;Chuc nang: Fillet rut gon.
(defun C:HA()
(or bk (setq bk 100))
(setq bk (cond ((getdist (strcat "\nNhap ban kinh <" (rtos bk 2) ">"))) (bk)))
(command "fillet" "R" bk "fillet" (entsel "\nChon object 1: ") (entsel "\nChon object 2: "))
(princ))

 

 

Lisp có vẻ không ổn lắm, em tải lisp về rồi nhưng khi sử dụng thì nó lại không bo. dòng lệnh nó hiện lên khi em sử dụng lệnh như sau

ha enter

Select first object or [uNdo/Polyline/Radius/Trim/mUltiple]:

Chọn object 1 :

Chọn Object 2 :

cuối cùng em enter thì lại hiện ra command: ???

Nhờ Anh hướng dẫ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

Bạn kiểm tra bán kính xem có quá lớn không? Hoặc 2 đối tượng có đồng phẳng không? Lisp hoạt động tốt.

Chọn object 1: chọn đường cần bo số 1

Chọn Object 2: chọn đường cần bo số ại

Tại sao có dòng này được nhỉ?

Select first object or [uNdo/Polyline/Radius/Trim/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

Bạn kiểm tra bán kính xem có quá lớn không? Hoặc 2 đối tượng có đồng phẳng không? Lisp hoạt động tốt.

Chọn object 1: chọn đường cần bo số 1

Chọn Object 2: chọn đường cần bo số ại

Tại sao có dòng này được nhỉ?

Select first object or [uNdo/Polyline/Radius/Trim/mUltiple]:

 

 

Em kiểm tra bán kính không quá lớn, nếu em dùng lệnh fillet không dùng lisp Anh gửi thì chỉ cần nhập R=300 thì bo rất đẹp, khi dùng lisp Anh gửi nó báo như em mới gửi ở trên đấy ạ?

Rất mong sự giúp đỡ tiếp.

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

Ngộ nhỉ! Bạn nhấn F2, copy và paste mấy dòng khi sử dụng lệnh xem nhé.

 

 

Vướng quá chẳng lẽ bỏ cuộc, Anh có thể làm dòng lệnh nhấn F2 copy sau paste lên diễn đàn em xem thử và làm lại được không? Năm mới mà phiền Anh ngại quá.

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

Command: ha

 

Nhap ban kinh <100.00>50

 

Chon object 1:

Chon object 2:

---

Nếu còn sự cố, bạn gởi bản vẽ cho tôi. Vì tôi thấy vô lý quá, vì ít nhất cũng phải có dòng nhập bán kính.

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

Command: ha

 

Nhap ban kinh <100.00>50

 

Chon object 1:

Chon object 2:

---

Nếu còn sự cố, bạn gởi bản vẽ cho tôi. Vì tôi thấy vô lý quá, vì ít nhất cũng phải có dòng nhập bán kính.

 

Không nối luôn...!mặc dù dùng fillet ngon lành

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). Nó có như tôi trích dẫn không?

2). Gởi bản vẽ cho tôi nào!

Không sợ phiền. Đầu năm mà có cơ hội viết lisp thì năm nay chắc khấm khá lisp rồi đây! :lol:

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). Nó có như tôi trích dẫn không?

2). Gởi bản vẽ cho tôi nào!

Không sợ phiền. Đầu năm mà có cơ hội viết lisp thì năm nay chắc khấm khá lisp rồi đây! :lol:

 

Em đã nối được rồi nhưng vẫn phải nhập lại bán kính Anh ạ!

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

Command: ha

 

Nhap ban kinh <100.00>50

 

Chon object 1:

Chon object 2:

---

Nếu còn sự cố, bạn gởi bản vẽ cho tôi. Vì tôi thấy vô lý quá, vì ít nhất cũng phải có dòng nhập bán kính.

 

 

Em gửi bản vẽ Anh nhấn F2 xem thế nào ạ??? nếu dùng fillet R=2 ok, nhưng tải lisp vào ha enter sau đó nhập R=2 THÌ @...!

Em kém quá, Anh hướng dẫn giùm, cảm ơn Anh nhiều http://www.cadviet.com/upfiles/3/115868_drawing1.dwg

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

2 đối tượng cần fillet của bạn là pline nên rắc rối hơn line 1 chút. Tôi đã sửa ở trên link cũ nhé! Bạn down về test xem sao.

  • 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

2 đối tượng cần fillet của bạn là pline nên rắc rối hơn line 1 chút. Tôi đã sửa ở trên link cũ nhé! Bạn down về test xem sao.

 

 

Em đã kiểm tra nhưng vẫn vậy ạ, thực ra em đi dây cho đèn có trường hợp em bo góc có bán kính R=300, có góc bán kính R=200, thỉng thoảng R=100 nhưng khi mà muốn quay lại cứ nhập lại bán kính hoài vậy...hihi, nhưng dù sao cảm ơn Anh rất nhiều.!

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

Em xin hỏi thêm Anh Hà một chỗ nữa ạ, tại sao với file em gửi lên diễn đàn nếu dùng lệnh Fillet bo với bán kính R=2 thì rất đẹp, nhưng em gõ bán kính lớn hơn R=200 thì hai đoạn Pline của em lại bị đẩy xa 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

Nghĩa là bạn muốn nhập bán kính chỉ 1 lần, rồi lần sau thì không cần nhập bán kính nữa? Vậy thì dùng cái này.

Chú ý: khi cần thay đổi bán kính thì bạn phải load lisp lại nhé.

(setq bk nil)
(defun C:HA1 (/ e1 e2 p2 l e ss)
(setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "undo" "be")
(if (not bk) (setq bk (getreal (strcat "\nNhap ban kinh:"))))
(command "fillet" "R" bk)
(while (null (setq e1 (entsel "\nChon object 1: "))))
(while (null (setq e2 (entsel "\nChon object 2: "))))
(setq p2 (cadr e2))
(setq e2 (car e2))
(if
 (and
  (= (cdr (assoc 0 (entget (car e1)))) "LWPOLYLINE")
  (= (cdr (assoc 0 (entget e2))) "LWPOLYLINE"))
 (progn
  (setq l (entlast))
  (command "explode" e2)
  (setq ss (ssadd))
  (ssadd (setq e (entnext l)) ss)
  (while (setq e (entnext e))
   (ssadd e ss))
  (command "fillet" e1 (nentselp p2))
  (command "pedit" e1 "_J" ss "" "")
  (command "erase" ss ""))
 (command "fillet" e1 (nentselp p2)))
(setvar "cmdecho" cmd) (command "undo" "e") (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

Nghĩa là bạn muốn nhập bán kính chỉ 1 lần, rồi lần sau thì không cần nhập bán kính nữa? Vậy thì dùng cái này.

Chú ý: khi cần thay đổi bán kính thì bạn phải load lisp lại nhé.

(setq bk nil)
(defun C:HA1 (/ e1 e2 p2 l e ss)
(setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "undo" "be")
(if (not bk) (setq bk (getreal (strcat "\nNhap ban kinh:"))))
(command "fillet" "R" bk)
(while (null (setq e1 (entsel "\nChon object 1: "))))
(while (null (setq e2 (entsel "\nChon object 2: "))))
(setq p2 (cadr e2))
(setq e2 (car e2))
(if
 (and
  (= (cdr (assoc 0 (entget (car e1)))) "LWPOLYLINE")
  (= (cdr (assoc 0 (entget e2))) "LWPOLYLINE"))
 (progn
  (setq l (entlast))
  (command "explode" e2)
  (setq ss (ssadd))
  (ssadd (setq e (entnext l)) ss)
  (while (setq e (entnext e))
   (ssadd e ss))
  (command "fillet" e1 (nentselp p2))
  (command "pedit" e1 "_J" ss "" "")
  (command "erase" ss ""))
 (command "fillet" e1 (nentselp p2)))
(setvar "cmdecho" cmd) (command "undo" "e") (princ))

 

 

 

HÌ HÌ , câu này Chú ý: khi cần thay đổi bán kính thì bạn phải load lisp lại nhé. Nghĩa là khi em muốn thay đổi bán kính lại load lại lisp, trong bài có 3 cái bán kính, em phải load 3 lầ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

1). Bạn muốn chỉ nhập bán kính một lần mà dùng được cho những lần sau, đúng không? Nếu vậy thì cái bán kính này nó chết cứng đó => muốn thay bán kính thì load lại lisp là lẽ đương nhiên.

2). Còn nếu như bạn muốn mỗi lần đều có thể thay đổi bán kính thì bạn dùng lisp thứ 1 (tôi đã sửa thêm, bạn down lại) => phải nhập bán kính mỗi lần.

3). Nếu cả 2 trường hợp trên không đúng thì bạn nên cho 1 ví dụ rõ hơ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

1). Bạn muốn chỉ nhập bán kính một lần mà dùng được cho những lần sau, đúng không? Nếu vậy thì cái bán kính này nó chết cứng đó => muốn thay bán kính thì load lại lisp là lẽ đương nhiên.

2). Còn nếu như bạn muốn mỗi lần đều có thể thay đổi bán kính thì bạn dùng lisp thứ 1 (tôi đã sửa thêm, bạn down lại) => phải nhập bán kính mỗi lần.

3). Nếu cả 2 trường hợp trên không đúng thì bạn nên cho 1 ví dụ rõ hơn.

 

 

Vâng, em cảm ơn Anh rất nhiều. Em nghĩ rồi nhập lại bán kính là nhanh nhất, chứ kiểu load lisp sẽ lâu hơn. Một lần nữa chân thành cảm ơn Anh. Chúc Anh và gia đình sức khỏe, thành công, may mắn.

Em sẽ tích cực tham gia diễn đàn học hỏi, có gì mong Anh chỉ dẫn tiếp.

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

 

 

Vâng, em cảm ơn Anh rất nhiều. Em nghĩ rồi nhập lại bán kính là nhanh nhất, chứ kiểu load lisp sẽ lâu hơn. Một lần nữa chân thành cảm ơn Anh. Chúc Anh và gia đình sức khỏe, thành công, may mắn.

Em sẽ tích cực tham gia diễn đàn học hỏi, có gì mong Anh chỉ dẫn tiếp.

Vụ này thiết nghĩ đâu cần Lisp đâu bạn

Cứ sử dụng lệnh Fillet -> Muốn thay R thì nhập R ở dòng

: Select first object or [undo/Polyline/Radius/Trim/Multiple]: r

-> Rồi nhập bán kính

 

Current settings: Mode = TRIM, Radius = 200.0000 -> Giá trị này chính là Radius bán kính cần bo

 

Còn muốn chấp nhận bán kính đã khai trước đó thì xem giá trị bán kính cần bo là bao nhiêu

-> Chọn đối tượng cần Fillet là xong

 

 

"Giết con gà đâu cần tới dao mổ trâu" :)

  • 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

Vụ này thiết nghĩ đâu cần Lisp đâu bạn

Cứ sử dụng lệnh Fillet -> Muốn thay R thì nhập R ở dòng

: Select first object or [undo/Polyline/Radius/Trim/Multiple]: r

-> Rồi nhập bán kính

 

Current settings: Mode = TRIM, Radius = 200.0000 -> Giá trị này chính là Radius bán kính cần bo

 

Còn muốn chấp nhận bán kính đã khai trước đó thì xem giá trị bán kính cần bo là bao nhiêu

-> Chọn đối tượng cần Fillet là xong

 

 

"Giết con gà đâu cần tới dao mổ trâu" :)

 

 

hihi, cái em cần là không muốn nhập lại bán kính R lần thứ 2 đó Bác, Bác chưa hiểu ý của em nên mới giải thích vậ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  

×