Đến nội dung


Hình ảnh
- - - - -

Đánh số thứ tự đối tượng trong wipeout


  • Please log in to reply
8 replies to this topic

#1 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 15 June 2009 - 05:05 PM

Em có một công việc như sau, nếu làm thủ công thì rất mất thời gian, cách anh xem giúp em xem có lisp nào làm được thì chỉ giúp em với nhé, em cảm ơn nhiều nhiều
http://www.cadviet.c...new_block_4.dwg
  • 0

#2 nataca

nataca

    biết lệnh adcenter

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

Đã gửi 16 June 2009 - 09:08 AM

Em có một công việc như sau, nếu làm thủ công thì rất mất thời gian, cách anh xem giúp em xem có lisp nào làm được thì chỉ giúp em với nhé, em cảm ơn nhiều nhiều
http://www.cadviet.c...new_block_4.dwg

Cho mình hỏi cái chỉ số A, B, C...của bạn chạy theo quy luật nào?
  • 0

#3 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 16 June 2009 - 09:34 AM

Dạ theo quy luật A, B, C rồi lại quay vòng lại thôi ạ!
  • 0

#4 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 16 June 2009 - 02:29 PM

Các anh ơi, giúp em với, em đang cần gấp lắm
  • 0

#5 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 16 June 2009 - 04:19 PM

Các anh ơi, giúp em với, em đang cần gấp lắm

lisp đơn giản này sẽ giúp bạn:
(defun c:N13T2 (/ tl n m k pott textTT)
(command "undo" "be")
(setq tl 333333.333
n 121
m '(65 66 67)
k 0
)
(while (setq poTT (getpoint "\nPick insertpoint:"))
(if (= k 3)
(setq k 0)
)
(setq textTT (strcat (itoa n) "-" (chr (nth k M))))
(command ".insert" "tram-cot" "s" tl poTT "" textTT)
(setq k (1+ k)
n (1+ n))
)
(command "undo" "end")
(princ "\nGood Luck. THIEP")
(princ)
)

  • 0

#6 nataca

nataca

    biết lệnh adcenter

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

Đã gửi 17 June 2009 - 07:27 AM

lisp đơn giản này sẽ giúp bạn:

(defun c:N13T2 (/ tl n m k pott textTT)
(command "undo" "be")
(setq tl 333333.333
n 121
m '(65 66 67)
k 0
)
(while (setq poTT (getpoint "\nPick insertpoint:"))
(if (= k 3)
(setq k 0)
)
(setq textTT (strcat (itoa n) "-" (chr (nth k M))))
(command ".insert" "tram-cot" "s" tl poTT "" textTT)
(setq k (1+ k)
n (1+ n))
)
(command "undo" "end")
(princ "\nGood Luck. THIEP")
(princ)
)

Góp ý đôi chút với bác Thiep về lisp của bác.
Thứ nhất: bác không nên để tỷ lệ và số thứ tự cố định mà hãy lấy nó từ block để tính toán. Như vậy lisp mới thực hiện được trong trường hợp tổng quát.
Thứ hai: theo mình trường hợp này có thể dùng lệnh insert, tuy nhiên để áp dụng cho trường hợp tổng quát thì cũng nên làm sao áp dụng cho block bất kỳ.
  • 1

#7 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 17 June 2009 - 08:40 AM

Góp ý đôi chút với bác Thiep về lisp của bác.
Thứ nhất: bác không để tỷ lệ và số thứ tự cố định mà hãy lấy nó từ block để tính toán. Như vậy lisp mới thực hiện được trong trường hợp tổng quát.
Thứ hai: theo mình trường hợp này có thể dùng lệnh insert, tuy nhiên để áp dụng cho trường hợp tổng quát thì cũng nên làm sao áp dụng cho block bất kỳ.

Ban đầu ý định của em là hỏi lisp để đánh số thứ tự tự động cho cả đối tượng đấy, chỉ sau một lần pick chuột. Nhưng loay hoay mãi chẳng được, em đã nghĩ ra cách sau:
Hiện tại em đang phải tách đối tượng đấy ra làm 2phần:
- phần thứ nhất (bên trên của ô) không đổi, em copy ra hết các vị trí cần đặt.
- phần thứ hai (bên dưới của ô) em tách rời thành một đối tượng text riêng, rồi dùng lisp đánh số thứ tự cho cột mà em đã lấy trên diễn đàn này từ trước
Kết quả là ở mỗi một vị trí sẽ phải mất 2 lần pick chuột nhưng dù sao công việc được thực hiện nhanh hơn rất nhiều vì không phải mất công edit text!
  • 0

#8 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 17 June 2009 - 08:58 AM

Góp ý đôi chút với bác Thiep về lisp của bác.
Thứ nhất: bác không để tỷ lệ và số thứ tự cố định mà hãy lấy nó từ block để tính toán. Như vậy lisp mới thực hiện được trong trường hợp tổng quát.
Thứ hai: theo mình trường hợp này có thể dùng lệnh insert, tuy nhiên để áp dụng cho trường hợp tổng quát thì cũng nên làm sao áp dụng cho block bất kỳ.

Cảm ơn Nataca góp ý. Vì lisp này thiep chỉ tạo một cách rất đơn giản, chống cháy cho Nhocbabi. Nếu để áp dụng cho trường hợp tổng quát, thì phải can thiệp vào cơ sở dữ liệu Block, kèm thuộc tính.
Trân trọng
  • 0

#9 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 17 June 2009 - 09:18 AM

Em cảm ơn 2 anh đã giúp đỡ, các anh thử xem cách của em như thế liệu có được không ạ! Hay là có cách nào nhanh hơn ạ!
  • 0