Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hhhhgggg

cách chọn đối tượng vừa được copy ra ?

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

Các bác Pro cho em hỏi, có cách nào để chọn được các đối tượng mình vừa copy ra không ? Cụ thể như sau: Có đối tượng A có sẵn, Em Copy đối tượng A ra, đối tượng mới sinh ra là B giống hệt A. Như vậy có cách nào chọn nhanh đối tượng B sau lệnh copy đó không ? mong các bác Pro chỉ giáo !

Một câu hỏi lớn không lời đáp . . .

TB: Không dùng block cũng chẳng cần lsp phải không HG

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
Một câu hỏi lớn không lời đáp . . .

TB: Không dùng block cũng chẳng cần lsp phải không HG

:undecided: :wub:

Nếu đúng ra phải dùng emotion cười sặc sụa nhưng ở đây k có :)

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. Sử dụng Lisp cp.lsp của Tue_NV để copy đối tượng A -> A1

2. Sử dụng lệnh Move -> Ở dòng select object : gõ p sẽ chọn lại đối tượng A1

Tue_NV hiểu như thế là sai chăng?

mình copy bình thường, Nhóm đối tượng A => A1. Bây giờ nhiệm vụ là move các đối tượng thuộc nhóm A1 đi chỗ khác. Thì ko thể dùng "M" rùi "P" được ? Vì khi ta dùng như vậy thì đối tượng bị Move đi là đối tượng A chứ không phải A1. Mục đích muốn move A1 đi chỗ khác vì khi copy đặt nhầm vị trí của A1 ??? Như vậy thì ta không phải Select object 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
mình copy bình thường, Nhóm đối tượng A => A1. Bây giờ nhiệm vụ là move các đối tượng thuộc nhóm A1 đi chỗ khác. Thì ko thể dùng "M" rùi "P" được ? Vì khi ta dùng như vậy thì đối tượng bị Move đi là đối tượng A chứ không phải A1. Mục đích muốn move A1 đi chỗ khác vì khi copy đặt nhầm vị trí của A1 ??? Như vậy thì ta không phải Select object nữa !

Ok. được thôi. Hôm nào rảnh mình làm cho cái lsp thỏa mãn yêu cầu của bạn.

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
Ok. được thôi. Hôm nào rảnh mình làm cho cái lsp thỏa mãn yêu cầu của bạn.

Eo chứ mô phật ông NguyenNdait và ông hhhhgggg không đọc bài của con ạ??

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

:undecided:) BÁc Duy cũng k chịu được rồi kìa :wub:) .Rõ ràng là những bài reply của 2 pác NguyenNdaiit và hhhhgggg chẳng ăn nhập j với bao phương án anh em post lên cả ^^.Bác nào mod check IP xem nào ^^

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
:undecided:) BÁc Duy cũng k chịu được rồi kìa :wub:) .Rõ ràng là những bài reply của 2 pác NguyenNdaiit và hhhhgggg chẳng ăn nhập j với bao phương án anh em post lên cả ^^.Bác nào mod check IP xem nào ^^

Huhu. Cái bác Duy này. Em đã dùng cái CPP của bác ngay từ khi bác post lên. Nhưng mà nó chỉ có tác dụng copy như bình thường . Em chẳng thấy nó khác lệnh copy chỗ nào. Hay là e chưa bit dùng. huhuhuhu

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
Huhu. Cái bác Duy này. Em đã dùng cái CPP của bác ngay từ khi bác post lên. Nhưng mà nó chỉ có tác dụng copy như bình thường . Em chẳng thấy nó khác lệnh copy chỗ nào. Hay là e chưa bit dùng. huhuhuhu

Nó không khác lệnh copy chổ nào cả chỉ khác là sau khi dùng nó thì dùng lệnh MOVE hay lệnh gì gì đi nửa muốn chọn đối tượng tạo ra sau cùng thì gỏ P như cái yêu cầu của ông ấy ạ.

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
Huhu. Cái bác Duy này. Em đã dùng cái CPP của bác ngay từ khi bác post lên. Nhưng mà nó chỉ có tác dụng copy như bình thường . Em chẳng thấy nó khác lệnh copy chỗ nào. Hay là e chưa bit dùng. huhuhuhu

Đây, xong rồi nè. Không phải chít liền

(defun c:Pss (/ n l h ss k h1 Rh1 Rh2) ;Preview selection set

(initget 7)

(setq n (getint "\nSo lan copy : "))

(setq l (sslength (ssget "P")) h (cdr (assoc 5 (entget (entlast)))) ss (ssadd))

(repeat (* n l)

(setq k 0 h1 h Rh2 "" ss (ssadd (handent h) ss))

(while (= (setq Rh (substr h (strlen h) 1)) "0")

(setq k (1+ k) h (substr h 1 (1- (strlen h)))))

(if (= k 0)

(progn

(setq Rh1 (substr h1 (strlen h1) 1))

(mapcar '(lambda (a b) (if (= Rh1 a) (setq Rh1 b)))

'("1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F")

'("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E"))

(setq h (strcat (substr h1 1 (1- (strlen h1))) Rh1)))

(progn

(repeat k (setq Rh2 (strcat Rh2 "F")))

(mapcar '(lambda (a b) (if (= Rh a) (setq Rh b)))

'("1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F")

'("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E"))

(setq h (strcat (substr h 1 (1- (strlen h))) Rh Rh2)))))

(sssetfirst nil ss))

TB : Cẩn thận khi sử dụng

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
Xin lỗi, không hiểu sao chữ b lại ra thành bộ mặt cười

ok ! hehe ! chuẩn không cần chỉnh ! thanks bác nhìu nhé. Em trân trọng kính tặng bác 1 con gà quay... hiiii

http://www.google.com.vn/imglanding?imgurl...ved=0CB8Q9QEwAQ

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

Cha chỉ cần hỏi là cha có A xong cha copy nó ra B, C,D bây giờ cha muốn chọn B,C,D thì người ta viết cái phẹt ra cho cha từ lâu rồi. Chả hiểu là ngu lâu hay dốt bền 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

Khá sáng tạo,n giải quyết theo hướng này copy đến lần nào đếm lần đó mất :">

 

@hhhhgggg : ..............Mình chẳng hiểu là bạn có hiểu bạn cần gì k.Và liệu bạn có biết cách dùng thứ mà bạn yêu cầu người ta viết không

Tóm lại là đã có 3 cách

1 Chọn lại 1 tập đối tượng cuối cùng ( mọi người đã post,điển hình là cpp.Lệnh này thay thế cho lệnh copy.Sau khi kết thúc lệnh này,nhóm đối tượng cuối cùng đã được chọn,dùng lệnh j sau đó với tham số P là được)

2.Chọn lại số tập đối tượng thứ n trở về trước sau khi kết thúc lệnh copy (pss mà bạn j đó vừa post)

3.Chọn lại toàn bộ các đối tượng từ lúc bắt đầu copy ( khỏi đếm số lần,đã sưu tầm,mình post bên dưới,cách dùng cũng là dùng c1 thay cho lệnh copy.Sau đó sử dụng lại các đối tượngvừa copy ra với tham số P)

(defun C:c1 ( / ss )
 (setvar "CMDECHO" 1)
 ;;;Creat Marker
 (mip:mark)
 ;;;Preform commands
 (princ "\nSelect objects for copying... ")
 (setq ss (ssget "_:L"))
 (command "_COPY" ss "" "_M")
 (while (> (getvar "CMDACTIVE") 0)(command pause))
;;; Select all entities created after copy
 (setq ss (mip:get-last-ss))
;;; Change color new objects to red
 (if ss
   (command "_select" ss "" )
   )
 (setq ss nil)
 (princ)
 )

(defun mip:mark ( )
 ;;;* Mark data base to allow KB:catch.
;;;* [url="http://www.theswamp.org/index.php?topic=15863.0"]http://www.theswamp.org/index.php?topic=15863.0[/url]
(if (setq *mip:mark (entlast)) nil
   (progn (entmake '((0 . "point") (10 0.0 0.0 0.0)))
      (setq *mip:mark (entlast))(entdel *mip:mark)))(princ))
;;;* returns selection set of entities since last mip:mark.
(defun mip:get-last-ss (/ ss tmp val)
(setq val (getvar "cmdecho"))(setvar "cmdecho" 0)
(if *mip:mark (progn (setq ss (ssadd))
(while (setq *mip:mark (entnext *mip:mark))(ssadd *mip:mark ss))
(command "._select" ss "")(setq tmp ss ss nil));_progn
(alert "*mip:mark not set. \n run (mip:mark) before mip:get-last-ss."));_if
(setvar "cmdecho" val) tmp)

 

p/s : ....

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
Đăng nhập để thực hiện theo  

×