Đến nội dung


Hình ảnh

XIN HỎI VỀ LỆNH FILLET


  • Please log in to reply
34 replies to this topic

#1 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 09:19 AM

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!
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 09:24 AM

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?
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 09:34 AM

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ị).
  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 09:43 AM

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à.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 10:24 AM

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.
  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 10:31 AM

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.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 10:49 AM

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.
  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 10:55 AM

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]:
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 11:03 AM

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.
  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 11:09 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#11 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 11:15 AM

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á.
  • 0

#12 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 11:17 AM

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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#13 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 11:22 AM

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
  • 0

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 11:30 AM

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:
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#15 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 01:39 PM

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 ạ!
  • 0

#16 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 01:51 PM

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.c...68_drawing1.dwg
  • 0

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 03:32 PM

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.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#18 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 03:59 PM

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.!
  • 0

#19 nguyencanh160890

nguyencanh160890

    Edu level: ao5

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

Đã gửi 01 January 2013 - 04:06 PM

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???
  • 0

#20 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 January 2013 - 04:12 PM

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))

  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.