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

Lisp tạo block không cần đặt tên

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

Bạn chọn hết các đối tượng cần tạo Block ->ấn Ctrl + C (Hoặc Ctrl + Shift + C) -> mang ra 1 góc Ctrl + Shift + 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

nhưng mình có thắc mắc là khi mình muốn lấy điểm pick point thì không được mong muốn

Đấy chính là lý do tại sao mình nói Ctr + C hoặc Ctrl + Shift + C. Ở cách thứ 2 cho phép chọn Insertpoint của Block

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ạn chọn hết các đối tượng cần tạo Block ->ấn Ctrl + C (Hoặc Ctrl + Shift + C) -> mang ra 1 góc Ctrl + Shift + V

Không dùng Ctrl + C (Hoặc Ctrl + Shift + C) và Ctrl + Shift + V, muốn tạo nhanh blog (không cần tên cũng được) chỉ bằng đánh lệnh rồi quét các đối tượng được chọn. Có lệnh nào như thế không ah?

Blog tạo thành tương tự như cách làm trên, giữ nguyên vị trí cũ, và các đối tượng cũ thì bị xóa đ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

zậy bác giúp e.......:D

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
(defun c:Test (/ ST:Entmake-AnonBlock)
(vl-load-com)
(defun ST:Entmake-AnonBlock (ss DeleteEntitiesFlag / i)
(entmake (list '(0 . "BLOCK")
 (cons 2 "*anon")
 (cons 70  1)
 (cons 10 (list 0 0 0))
  )
)
(setq i (sslength ss))
(while (<= 0 (setq i (1- i)))
(entmake (vl-remove-if '(lambda(x)(= (car x) 5)) (entget (ssname ss i))))
 (if DeleteEntitiesFlag (entdel (ssname ss i)))
)
(entmake '((0 . "ENDBLK")))
)
(entmake
(list '(0 . "INSERT")
  (cons 2 (ST:Entmake-AnonBlock (ssget) T))
  (cons 10 (list 0 0 0))
)
)
(entmake (list (cons 0   "SEQEND")))
)

  • Vote tăng 1

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

Thử cách mới học của bác Tuệ xem:

 

 

(DEFUN c:blkt (/ xx dc)
(setq XX (ssget))
(setq dc (getpoint "\nChon diem goc:"))
(Command "copybase" dc xx "" "_pasteblock" dc "erase" xx "")
(Princ))

  • Vote tăng 1

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

Nếu dùng Command thì :

(defun c:pb ()(command "cutclip" (ssget ) "" "pasteblock"))

Làm vậy phải chọn điểm chèn lại ra với lại ko kiểm soát được điểm này bác két ơ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

Hì, đúng vậy :) Ketxu viết để tạo cái Block thôi ^^

THeo cách của bác thì như vầy cho nhanh :

(defun c:pb(/ p)(command  "_.copybase" (setq p (getvar "LASTPOINT")) (ssget) "" "_.pasteblock" p "_.erase" "_p" ""))

  • 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

Hì, đúng vậy :) Ketxu viết để tạo cái Block thôi ^^

THeo cách của bác thì như vầy cho nhanh :

(defun c:pb(/ p)(command  "_.copybase" (setq p (getvar "LASTPOINT")) (ssget) "" "_.pasteblock" p "_.erase" "_p" ""))

Ơ nay mới biết cu "LASTPOINT" này thank bác. Mà bác chơi hai quả P làm mình đọc cứ lẩn hết cả lộn. Cadviet có nhiều cái để học phết 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

Đăng nhập để thực hiện theo  

×