Đến nội dung


Hình ảnh
- - - - -

[Share] Sắp xếp thẳng hàng


  • Please log in to reply
12 replies to this topic

#1 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 11 November 2014 - 11:25 AM


Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^
(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 

  • 13

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#2 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 11 November 2014 - 11:43 AM

APPLOAD xx SapXep doituong.lsp successfully loaded.
Command: ; error: malformed list on input

Bị lỗi này đó ketxu


  • 1

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 11 November 2014 - 11:58 AM

APPLOAD xx SapXep doituong.lsp successfully loaded.
Command: ; error: malformed list on input

Bị lỗi này đó ketxu

Thêm 1 dấu ngoặc ) vào cuối lisp nữa.


  • 3

* 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.


#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 11 November 2014 - 04:12 PM

Bạn Conghoa ăn ở bất công! Người thêm 1 dấu ngoặc thì được like còn người viết lisp thì không, khiến tôi phải like bù. <_<


  • 4

* 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 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 11 November 2014 - 04:52 PM

K sao đâu bác ơi ^^


  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 11 November 2014 - 05:22 PM

hé hé, bình thường thì vẫn like, ko hiểu hôm nay zời thế nào mà quên :)) like bù các bác ;))
  • 1

#7 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 11 November 2014 - 06:42 PM

- nhoc thắc mắc ngoài lề xíu ^^, mún dòng nhắc ở các hàm getxxx hiện tiếng Việt phải gõ kiểu mã đó, làm sao mình nhớ hết đc nhỉ ^^, hay mỗi lần làm mình phải tra bảng các anh nhỉ :P


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#8 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 11 November 2014 - 07:59 PM

Tool a viết từ lâu :

http://www.cadviet.c...ii/#entry141457


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#9 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 11 November 2014 - 08:16 PM

- ^^ hay quá giờ mới biết, mốt thêm tiếng Việt cho nó màu mè ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#10 proconeng86

proconeng86

    biết lệnh break

  • Members
  • PipPipPipPip
  • 221 Bài viết
Điểm đánh giá: -9 (bình thường)

Đã gửi 18 November 2014 - 12:24 PM

Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^

(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 

 

li sp này quá hay, giảm được bao nhiêu thời gian mà lại thẳng hàng,trước toàn phải chọn f8 rồi from. like mạnh :D


  • 0

#11 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 17 April 2015 - 03:16 PM

Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^

(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 

 

 

Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^

(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 

 

 

Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^

(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 
https://www.youtube.com/watch?v=UKkXtIzMLS8

 

Cảm ơn lisp của bạn, bạn có thể thêm phần chọn khoảng cách sắp xếp (X, Y) giữa điểm làm chuẩn và đối tượng cần dóng được không. Ý mình là sau khi chọn điểm chuẩn; chọn đối tượng (nhóm đối tượng) cần dóng; nhập khoảng cách trục X (nếu không cần thì Enter), trục Y (nếu không cần thì Enter) so với điểm chuẩn. Mong bạn hiểu ý mình nói!


  • 0

#12 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 18 April 2015 - 09:55 AM

làm gì rối thế, có thể làm như sau:

Khi y/cầu nhập điểm chuẩn Bạn chọn chế độ osnap là FROM, sau đó nhập @X,Y là xong

"Điểm chuẩn :: _from Base point: <Offset>: @X,Y"


  • 0

#13 ginger

ginger

    biết lệnh move

  • Advance Member
  • PipPipPip
  • 121 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 25 May 2016 - 09:01 AM

Bản thân ket nhiều khi muốn sắp xếp các nhóm đối tượng cho ngay ngắn theo hàng lối, thường toàn kẻ Xline để gióng (hoặc kết hợp F11) rồi move. Thật kỳ lạ >"<
Trong khi đoạn code ngắn như thế này giúp tăng tốc bao nhiêu. Ý tưởng của ReachAndre trên Augi

P/s : Tự gióng theo khoảng cách gần nhất giữa Delta X và Delta Y nhé ^^

(defun c:xx (/ p pt d xd yd s)
(command "undo" "Mark")
(while (not (setq p (getpoint "\n\U+0110i\U+1EC3m chu\U+1EA9n :: "))))
(while
	(setq s (ssget))
		(while(not(setq pt (getpoint "\n\U+0110i\U+1EC3m gi\U+00F3ng :" p))))
		(setq 	xd (abs (- (car pt) (car p)))
				yd (abs (- (cadr pt) (cadr p)))
				d	(cond 	((> xd yd)(list (car pt) (cadr p) (caddr pt)))
							((< xd yd)(list (car p) (cadr pt) (caddr pt)))
					)
		)
		(command "_move" s "" "non" pt "non" d)
)
(command "undo" "end")
(princ)
) 

 

anh ketxu ơi lisp hay rồi nhưng em muốn ví dụ sắp xếp nhiều đối tượng một lần được không ? ở video của anh là mỗi lần click anh mới sắp xếp được 1 đối tượng giờ em muốn sắp xếp liền lúc 3 đối tượng theo hàng ngang chẳng hạn . thanks anh 


  • 0