Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

Xin lisp giống lệnh trim


  • Please log in to reply
45 replies to this topic

#1 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 03:47 PM

Cho em hỏi có lisp nào thao tác giống lệnh trim nhưng xóa tất cả những nét được chọn.
(Đại ý là kết hợp lệnh Trim và erase_trên diễn đàn mới có trong vùng kín)
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 March 2011 - 05:08 PM

Cho em hỏi có lisp nào thao tác giống lệnh trim nhưng xóa tất cả những nét được chọn.
(Đại ý là kết hợp lệnh Trim và erase_trên diễn đàn mới có trong vùng kín)

(1).Trim và Erase từng cặp đối tượng?
hay
(2).Trim và Erase cùng lúc 2 tập hợp chọn?
(1) thì dễ nhưng (2) thì còn phụ thuộc thứ tự chọn đối tượng nữa. Bạn muốn sao?
  • 0

#3 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 09:25 PM

(1).Trim và Erase từng cặp đối tượng?
hay
(2).Trim và Erase cùng lúc 2 tập hợp chọn?
(1) thì dễ nhưng (2) thì còn phụ thuộc thứ tự chọn đối tượng nữa. Bạn muốn sao?

Đại ý là như thế này: Mình có 1 hình vẽ. Vẽ 1 đường line và muốn xóa một nửa và giữ lại một nửa.Thường là trim rồi sau đó erase.Mình muốn gộp chúng lại.
  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 March 2011 - 09:50 PM

Đại ý là như thế này: Mình có 1 hình vẽ. Vẽ 1 đường line và muốn xóa một nửa và giữ lại một nửa.Thường là trim rồi sau đó erase.Mình muốn gộp chúng lại.

Thú thật: tôi không hiểu ý bạn. Có 1 hình gồm nhiều đối tượng, sau đó trim thì đương nhiên 1 nửa sẽ bị xóa, còn lại 1 nửa. Nhưng trim rồi erase nghĩa là erase cái gì?
  • 0

#5 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 09:57 PM

Thú thật: tôi không hiểu ý bạn. Có 1 hình gồm nhiều đối tượng, sau đó trim thì đương nhiên 1 nửa sẽ bị xóa, còn lại 1 nửa. Nhưng trim rồi erase nghĩa là erase cái gì?

Trim thì chỉ những đường thuộc 1 hình thôi.còn nếu các nét vẽ mà ko thuộc hình đó thì mình lại phải erase.
  • -1

#6 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 694 (tốt)

Đã gửi 17 March 2011 - 10:08 PM

Trim thì chỉ những đường thuộc 1 hình thôi.còn nếu các nét vẽ mà ko thuộc hình đó thì mình lại phải erase.

Pó tay...!!!???
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 March 2011 - 10:23 PM

Trim thì chỉ những đường thuộc 1 hình thôi.còn nếu các nét vẽ mà ko thuộc hình đó thì mình lại phải erase.

Trim có thể thực hiện cho 1 tập hợp chọn chứ không phải chỉ 1 hình đâu bạn!
  • 0

#8 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2250 Bài viết
Điểm đánh giá: 735 (tốt)

Đã gửi 17 March 2011 - 10:31 PM

Pó tay...!!!???

Em bó chân, ko thể hiểu ý của tác giả 47c1 qua diễn đạt chữ nghĩa mà ko có hình anh minh họa!????

(trên diễn đàn từng có nhiều bài viết, mà mọi người không hiểu ý tác giả, lại phải yêu cầu tác giả gửi bản vẽ lên, gây lãng phí thời gian)
  • 0

Hạt giống tâm hồn : http://htlove.org/


#9 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 10:53 PM

Em bó chân, ko thể hiểu ý của tác giả 47c1 qua diễn đạt chữ nghĩa mà ko có hình anh minh họa!????

(trên diễn đàn từng có nhiều bài viết, mà mọi người không hiểu ý tác giả, lại phải yêu cầu tác giả gửi bản vẽ lên, gây lãng phí thời gian)

Đùa chứ tưởng là dễ hiểu nên chả cần phải giải thích nhiều. Ví dụ bạn có 1 cái bình đồ rất rộng. Vẽ 1 đường line làm giới hạn thành 2 nửa bình đồ.
Bạn ko thể xóa toàn bộ cả 1 nửa bình đồ. đầu tiên bạn phải trim các đường cắt qua đường line giới hạn sau đó mới erase các đường bị tách rời.
Mình muốn gộp lại xóa tất luôn.
  • 0

#10 gp14

gp14

    DO TUAN GIAP

  • Moderator
  • PipPipPipPipPipPipPip
  • 1860 Bài viết
Điểm đánh giá: 1113 (rất tốt)

Đã gửi 17 March 2011 - 10:54 PM

Mình thì đoán bạn đó đang trim ở Acad2004 trở về trước,hoặc là bạn nhầm lẫn giữa trim và break, không biết có phải thế không nhỉ? >:)
  • 0

#11 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 11:09 PM

Mình thì đoán bạn đó đang trim ở Acad2004 trở về trước,hoặc là bạn nhầm lẫn giữa trim và break, không biết có phải thế không nhỉ? >:)

Đương nhiên là ko phải.
Thui câu hỏi này mình hỏi cho cá nhân vì đôi khi cũng hơi phiền hà.nhưng mà thực ra Trim xong rồi erase cũng ko sao.
Mình tìm trên diễn đàn hình như có cách trim một hình kín.Ko biết liệu có thể làm như thế này được không: mình vẽ 1 hình chữ nhật(hoặc hình tròn, elip) sau đó muốn lựa chọn để xóa các phần nằm ngoài hoặc xóa các phần nằm trong hình chữ nhật(hoặc hình tròn, elip)đó được ko?
  • 0

#12 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 March 2011 - 11:11 PM

Đùa chứ tưởng là dễ hiểu nên chả cần phải giải thích nhiều. Ví dụ bạn có 1 cái bình đồ rất rộng. Vẽ 1 đường line làm giới hạn thành 2 nửa bình đồ.
Bạn ko thể xóa toàn bộ cả 1 nửa bình đồ. đầu tiên bạn phải trim các đường cắt qua đường line giới hạn sau đó mới erase các đường bị tách rời.
Mình muốn gộp lại xóa tất luôn.

Bây giờ thì botay.com lẫn bochan.com luôn!
  • 0

#13 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 17 March 2011 - 11:13 PM

Lệnh Trim thì chỉ xoá những đuờng cắt với đuờng giới hạn mình định. sau đó mình phải erase.Ý mình là muốn xoá luôn những đuờng ko cắt với đuờng giới hạn đó luôn.Sao mọi nguời lại ko hiểu ý câu hỏi mình nhỉ.
  • 0

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 March 2011 - 11:17 PM

Lệnh Trim thì chỉ xoá những đuờng cắt với đuờng giới hạn mình định. sau đó mình phải erase.Ý mình là muốn xoá luôn những đuờng ko cắt với đuờng giới hạn đó luôn.Sao mọi nguời lại ko hiểu ý câu hỏi mình nhỉ.

Vậy chớ "đường bị tách rời" là đường nào?
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 March 2011 - 12:03 AM

Đương nhiên là ko phải.
Thui câu hỏi này mình hỏi cho cá nhân vì đôi khi cũng hơi phiền hà.nhưng mà thực ra Trim xong rồi erase cũng ko sao.
Mình tìm trên diễn đàn hình như có cách trim một hình kín.Ko biết liệu có thể làm như thế này được không: mình vẽ 1 hình chữ nhật(hoặc hình tròn, elip) sau đó muốn lựa chọn để xóa các phần nằm ngoài hoặc xóa các phần nằm trong hình chữ nhật(hoặc hình tròn, elip)đó được ko?

Cái này thì Cadviet đã có. Khuya quá, sáng mai mình sẽ post cho. Thực ra do bạn đặt đề khó hiểu quá nên khó giúp được bạn thôi. Sorry.
  • 0

#16 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5424 Bài viết
Điểm đánh giá: 2493 (tuyệt vời)

Đã gửi 18 March 2011 - 02:20 AM

Cho em hỏi có lisp nào thao tác giống lệnh trim nhưng xóa tất cả những nét được chọn.
(Đại ý là kết hợp lệnh Trim và erase_trên diễn đàn mới có trong vùng kín)



Đùa chứ tưởng là dễ hiểu nên chả cần phải giải thích nhiều. Ví dụ bạn có 1 cái bình đồ rất rộng. Vẽ 1 đường line làm giới hạn thành 2 nửa bình đồ.
Bạn ko thể xóa toàn bộ cả 1 nửa bình đồ. đầu tiên bạn phải trim các đường cắt qua đường line giới hạn sau đó mới erase các đường bị tách rời.
Mình muốn gộp lại xóa tất luôn.



Đương nhiên là ko phải.
Thui câu hỏi này mình hỏi cho cá nhân vì đôi khi cũng hơi phiền hà.nhưng mà thực ra Trim xong rồi erase cũng ko sao.
Mình tìm trên diễn đàn hình như có cách trim một hình kín.Ko biết liệu có thể làm như thế này được không: mình vẽ 1 hình chữ nhật(hoặc hình tròn, elip) sau đó muốn lựa chọn để xóa các phần nằm ngoài hoặc xóa các phần nằm trong hình chữ nhật(hoặc hình tròn, elip)đó được ko?

Bạn nên chú ý cách giải thích vấn đề của mình, tránh làm cả bạn và mọi người mất quá nhiều thời gian
Ý xanh : được
Ý đỏ : được
Bạn có thể theo dõi ở đây, chính là topic mà bạn nói chỉ có "trong" chứ chưa có ngoài, nhưng thực ra đã có, các lisp bác giabach và bác thiep viết rất hay :
http://www.cadviet.c...pic=27121&st=40

Còn đây là mình độ giùm theo 2 yêu cầu của bạn. Yêu cầu xanh : mình cụ thể là bên trái hoặc bên phải Line,Pline, chưa có thời gian làm tổng quát :)
Link EE
;free lisp from Cadviet.com @gia_bach -> ketxu ^^
(defun C:EE ( / en ss lst ssall bbox tmpvt lit) 
(vl-load-com)
(if (null etrim)(load "extrim.lsp"))
(setq tmpvt '(1e+10 0 0))
  (if (and (setq en (car(entsel "\n Chon duong bao : ")))
           (wcmatch (cdr(assoc 0 (entget en))) "LINE,*POLYLINE"))		   
    (progn
      (setq bbox (ACET-ENT-GEOMEXTENTS en))
      (setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
      (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3)
			lit (nth (1- (length lst)) lst))
      (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
      (command "_.Zoom" "0.95x") 
	  (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
	  (if (vlax-curve-isClosed en)	  
		(progn
			(etrim en (getpoint "\n Phia cat va xoa bo : "))
			(setq ss (ssget "_CP" lst))			
		)
		(progn	
			(initget 1 "t p T P")
			(if (= (strcase(getkword "\n Phia cat va xoa bo : [T/P]")) "T")
				(progn
					(etrim en (mapcar '- (nth 0 lst) '(1e+10 0 0)))
					(setq ss (ssget "_CP"  
						(append  (list (nth 0 lst) (mapcar '+ (nth 0 lst) tmpvt) (mapcar '+ lit tmpvt) lit))))
				)
				(progn
				(etrim en (mapcar '+ (nth 0 lst) '(1e+10 0 0)))
				(setq ss (ssget "_CP"  
					(append  (list (nth 0 lst) (mapcar '- (nth 0 lst) tmpvt) (mapcar '- lit tmpvt) lit))))
				)
			)
		)
	  )
	  (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
				(foreach e1 lst (ssdel e1 ssall))
				(ACET-SS-ENTDEL ssall)
   )
  )
)

Chú ý : chưa kiểm định, mần trên lý thuyết ^^
  • 2

Thành viên nhóm CadMagic.

Mời bạn ghé thăm facebook nhóm  :

CAD MAGIC


#17 tlcom

tlcom

    Chưa sử dụng CAD

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

Đã gửi 18 March 2011 - 07:19 AM

cái này theo mình đâu có cần dùng lisp. Cad cũng có hỗ trợ 1 lệnh đó là extrim ( bạn vào express/tool/command alias editor để thiết lập phím tắt theo ý muốn) lệnh này có thể làm theo ý bạn với điều kiện phần bị cắt ko có đường multiline nào bị cắt. nếu dính thì thanh multiline sẽ bị thay đổi. Chúc bạn thành công
  • 0

#18 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 18 March 2011 - 09:27 AM

Bạn nên chú ý cách giải thích vấn đề của mình, tránh làm cả bạn và mọi người mất quá nhiều thời gian
Ý xanh : được
Ý đỏ : được
Bạn có thể theo dõi ở đây, chính là topic mà bạn nói chỉ có "trong" chứ chưa có ngoài, nhưng thực ra đã có, các lisp bác giabach và bác thiep viết rất hay :
http://www.cadviet.c...pic=27121&st=40

Còn đây là mình độ giùm theo 2 yêu cầu của bạn. Yêu cầu xanh : mình cụ thể là bên trái hoặc bên phải Line,Pline, chưa có thời gian làm tổng quát :)
Link EE

;free lisp from Cadviet.com @gia_bach -> ketxu ^^
(defun C:EE ( / en ss lst ssall bbox tmpvt lit) 
(vl-load-com)
(if (null etrim)(load "extrim.lsp"))
(setq tmpvt '(1e+10 0 0))
  (if (and (setq en (car(entsel "\n Chon duong bao : ")))
           (wcmatch (cdr(assoc 0 (entget en))) "LINE,*POLYLINE"))		   
    (progn
      (setq bbox (ACET-ENT-GEOMEXTENTS en))
      (setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
      (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3)
			lit (nth (1- (length lst)) lst))
      (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
      (command "_.Zoom" "0.95x") 
	  (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
	  (if (vlax-curve-isClosed en)	  
		(progn
			(etrim en (getpoint "\n Phia cat va xoa bo : "))
			(setq ss (ssget "_CP" lst))			
		)
		(progn	
			(initget 1 "t p T P")
			(if (= (strcase(getkword "\n Phia cat va xoa bo : [T/P]")) "T")
				(progn
					(etrim en (mapcar '- (nth 0 lst) '(1e+10 0 0)))
					(setq ss (ssget "_CP"  
						(append  (list (nth 0 lst) (mapcar '+ (nth 0 lst) tmpvt) (mapcar '+ lit tmpvt) lit))))
				)
				(progn
				(etrim en (mapcar '+ (nth 0 lst) '(1e+10 0 0)))
				(setq ss (ssget "_CP"  
					(append  (list (nth 0 lst) (mapcar '- (nth 0 lst) tmpvt) (mapcar '- lit tmpvt) lit))))
				)
			)
		)
	  )
	  (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
				(foreach e1 lst (ssdel e1 ssall))
				(ACET-SS-ENTDEL ssall)
   )
  )
)

Chú ý : chưa kiểm định, mần trên lý thuyết ^^

Hoàn toàn làm mình ưng ý với lisp này.Hix quả thật là giải thích đôi khi hơi khó hiểu.Nhưng mà thực ra người nào gặp tình trạng như mình thì biết ngay mình nói gì mà.
Cái link bạn đưa mình chưa đọc trước đó mà đọc link khác. Thank bạn ketxu
  • 0

#19 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5424 Bài viết
Điểm đánh giá: 2493 (tuyệt vời)

Đã gửi 18 March 2011 - 09:41 AM

Bạn có thể nhấn Vote ^^ Thực ra cái này mình nghĩ sẽ lỗi khi gặp đường bao PL hở + cách chọn "CP", tuy nhiên với Line thì có thể ít lỗi hơn ^^ Trong trường hợp lỗi mà thấy rõ mồn một thì hãy quay lại etrim + erase truyền thống :) Mình cũng có thể cho extrim với cả Dim, nhưng với file Bình đồ có lẽ k cần thiết ?? ^^
  • 1

Thành viên nhóm CadMagic.

Mời bạn ghé thăm facebook nhóm  :

CAD MAGIC


#20 47c1

47c1

    biết vẽ ellipse

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

Đã gửi 18 March 2011 - 10:36 AM

Bạn có thể nhấn Vote ^^ Thực ra cái này mình nghĩ sẽ lỗi khi gặp đường bao PL hở + cách chọn "CP", tuy nhiên với Line thì có thể ít lỗi hơn ^^ Trong trường hợp lỗi mà thấy rõ mồn một thì hãy quay lại etrim + erase truyền thống :) Mình cũng có thể cho extrim với cả Dim, nhưng với file Bình đồ có lẽ k cần thiết ?? ^^

Thế là mình ưng ý rồi. K cần phải lo về đường bao hở. Vì tự mình sẽ vẽ đường kín để cắt. :lol:
  • 0