Chuyển đến nội dung
Diễn đàn CADViet
gunner1605

Lệnh Trim CAD đặc biệt- làm thế nào để ấn phần dài cắt phần ngắn?

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

 

Có phải ý bạn là thế này? 


1). Chỉ có Line thì ổn định. Có thêm Pline, Arc, Spline thì lỗi.

2). Bổ sung undo begin và undo end nữa.

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). Chỉ có Line thì ổn định. Có thêm Pline, Arc, Spline thì lỗi.

2). Bổ sung undo begin và undo end nữa.

- Xin lỗi vì không chú thích. Cái này chỉ dùng cho Pline và Line, còn đối tượng khác không áp dụng. Vì đối tượng khác ít dùng, viết tổng quát mất nhiều thời gian, không cần thiết.

- Begin và Undo ai biết về lisp thì tự thêm vào, còn nếu ko biết thì ko có cũng ko sao.

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ôi góp ý cho cộng đồng thôi. "Không cần thiết" + "Không sao" thì kệ vậy thôi.

Nếu các đối tượng bị cắt bao gồm cả Pline và Line vẫn bị lỗ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

Giả sử con dao là line thẳng đứng. Có 2 line nằm ngang bị dao này cắt. Khi đó extrim thì chọn phía bên nào, trong khi user chỉ muốn trim 1 line thôi.

 

Cũng dễ thôi bác. Ẩn nhóm Line1 đi, Extrim Line2. Hiện nhóm Line1 -> ExtrimLine1 -> Rồi xong

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

........

Tiện đây nhờ các bác viết lisp minh họa bằng hình ảnh sau:114276_%C3%A0af70.png

Hy vọng Lisp này đáp ứng được yêu cầu của "em" Hoằn.

(Chỉ sử dụng với Line và Arc)

(defun C:cut(/ ent ss e pt1 pt2 iPts)
  (command "undo" "be")
  (while
    (not
      (and
	(setq ent (car (entsel "Duong chuan :")))
	(if ent (wcmatch (cdr (assoc 0 (entget ent))) "LINE,ARC,RAY,XLINE" ) ) ) )
    (princ "\nSelect Again: ")    )
  (setq ent (vlax-ename->vla-object ent))
  (princ "\nVat bi cat...")
  (if(setq ss (ssget "_:L" (list (cons 0 "LINE,ARC"))))
    (foreach e (mapcar 'vlax-ename->vla-Object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
      (setq iPts (vlax-Invoke ent "IntersectWith" e 2)
	    ObjName (vla-get-ObjectName e)
	    pt1 (vlax-curve-getStartPoint e)
	    pt2 (vlax-curve-getEndPoint e))
      (if (and iPts (= 3(length iPts) ))
	(cond
	  ((eq ObjName "AcDbLine") ;LINE
	   (if (> (distance iPts pt1)(distance iPts pt2))
	     (vla-put-EndPoint e (vlax-3d-point iPts))
	     (vla-put-StartPoint e (vlax-3d-point iPts)) ) )
	  ((eq ObjName "AcDbArc") ;ARC
	   (setq center (vlax-safearray->list (variant-value (vla-get-Center e))))
	   (if (> (distance iPts pt1)(distance iPts pt2))
	     (vla-put-EndAngle e (vlax-make-variant(angle center iPts)) )
	     (vla-put-StartAngle e (vlax-make-variant(angle center iPts))) ) )   ))))
  (command "undo" "e")(princ)  )
  • Vote tăng 2

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

Các bác làm e hoa cả mắt- e muốn tìm cái "trim ngược" đó chứ lengthen với extrim là ko nhanh và ko ổn ( vì có thể cắt cả các line e ko muốn cắt )

E thấy bác Nataca là chuẩn đấy. Thanks bác Nataca nhé- cái này sẽ còn dùng đến rất nhiều trong khi vẽ.

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

Cảm ơn bác Đoàn Văn Hà nhé. nhiều lựa chọn hơn rồi. Từ nay e edit mấy bản vẽ xây dựng chắc sẽ nhanh hơn vì nó sẽ được dùng nhiều trong quá trình vẽ và chỉnh sửa

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ị lỗi khi chạy trong cad 2008 bác Hà ợ. Nếu giả sử sau này có dùng được thì có 2 điều e rút ra sau khi sử dụng là:

-Mà e thấy vẫn phải lựa chọn nhiều quá. E chỉ muốn có 3 bước như lệnh trim gốc thôi: ấn lệnh tr, chọn đối tượng làm dao cắt, chọ đối tượng cắt là xong.

- Bác đặt cái tên lênh làm sao chỉ ấn 1 cái hay là 2 phím gần nhau ví dụ như lệnh trim bình thường thì ấn tr, trim ngược thì ấn rt chẳng hạn để nhằm tiết kiệm time ấn lệnh trên bàn phím

Chứ lựa chọn nhiều quá thà lăn con trỏ e zoom vài cái là e cắt được cái đoạn nhỏ đó đỡ phải ấn bàn phím nhiều mất time.

Bác xem làm sao chỉ cần ấn lệnh, chọn đường cần giới hạn cắt, chọn phần line dài để dễ ấn thì cắt được line ngắn. Như vậy bỏ qua được cái zoom vào đỡ hoa cả mắt vừa tiết kiệm time.

Thanks.

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

 

Hy vọng Lisp này đáp ứng được yêu cầu của "em" Hoằn.

(Chỉ sử dụng với Line và Arc)

(defun C:cut(/ ent ss e pt1 pt2 iPts)
  (command "undo" "be")
  (while
    (not
      (and
	(setq ent (car (entsel "Duong chuan :")))
	(if ent (wcmatch (cdr (assoc 0 (entget ent))) "LINE,ARC,RAY,XLINE" ) ) ) )
    (princ "\nSelect Again: ")    )
  (setq ent (vlax-ename->vla-object ent))
  (princ "\nVat bi cat...")
  (if(setq ss (ssget "_:L" (list (cons 0 "LINE,ARC"))))
    (foreach e (mapcar 'vlax-ename->vla-Object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
      (setq iPts (vlax-Invoke ent "IntersectWith" e 2)
	    ObjName (vla-get-ObjectName e)
	    pt1 (vlax-curve-getStartPoint e)
	    pt2 (vlax-curve-getEndPoint e))
      (if (and iPts (= 3(length iPts) ))
	(cond
	  ((eq ObjName "AcDbLine") ;LINE
	   (if (> (distance iPts pt1)(distance iPts pt2))
	     (vla-put-EndPoint e (vlax-3d-point iPts))
	     (vla-put-StartPoint e (vlax-3d-point iPts)) ) )
	  ((eq ObjName "AcDbArc") ;ARC
	   (setq center (vlax-safearray->list (variant-value (vla-get-Center e))))
	   (if (> (distance iPts pt1)(distance iPts pt2))
	     (vla-put-EndAngle e (vlax-make-variant(angle center iPts)) )
	     (vla-put-StartAngle e (vlax-make-variant(angle center iPts))) ) )   ))))
  (command "undo" "e")(princ)  )

 

Em Hoằn vừa đưa thêm SPLINE vào "Duong chuan :"  trong Lips để trim thử, cảm ơn bác Gia_bạch nhiều nhé!

Hi vọng Lisp của bác đáp ứng được yêu cầu của "em" ...chủ thớt: "Tôi muốn cắt trim cái phần thừa 5 mm của 1 Line ( do quá trình vẽ bắt điểm nó lệch 1  chút xíu - 5 mm ), mà tôi ko muốn zoom lại để cắ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

Bị lỗi khi chạy trong cad 2008 bác Hà ợ. Nếu giả sử sau này có dùng được thì có 2 điều e rút ra sau khi sử dụng là:

-Mà e thấy vẫn phải lựa chọn nhiều quá. E chỉ muốn có 3 bước như lệnh trim gốc thôi: ấn lệnh tr, chọn đối tượng làm dao cắt, chọ đối tượng cắt là xong.

- Bác đặt cái tên lênh làm sao chỉ ấn 1 cái hay là 2 phím gần nhau ví dụ như lệnh trim bình thường thì ấn tr, trim ngược thì ấn rt chẳng hạn để nhằm tiết kiệm time ấn lệnh trên bàn phím

Chứ lựa chọn nhiều quá thà lăn con trỏ e zoom vài cái là e cắt được cái đoạn nhỏ đó đỡ phải ấn bàn phím nhiều mất time.

Bác xem làm sao chỉ cần ấn lệnh, chọn đường cần giới hạn cắt, chọn phần line dài để dễ ấn thì cắt được line ngắn. Như vậy bỏ qua được cái zoom vào đỡ hoa cả mắt vừa tiết kiệm time.

Thanks.

Bạn sang topic "[Đã xong] Lệnh Trim mở rộng" đặt câu hỏi kẻo lạc chủ đề:

http://www.cadviet.c...h-trim-mo-rong/

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

Các bác cho em hỏi ké 1 câu hỏi nha: Tsao đồ gá khoét doa không cần then dẫn hướng khi gia công trên máy khoan cần

 

Chỉ có đồ gá phay mới cần phải có then dẫn hướng.

 

P/S @ bebaongu  Hôm nay "Bé" ...mắng bác à??? Buồn 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

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


×