Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] Lisp tạo block


  • Please log in to reply
4 replies to this topic

#1 ramborock

ramborock

    biết vẽ arc

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

Đã gửi 04 June 2012 - 09:21 PM

Mình có đoạn lisp sau:
 (defun c: newblock (/ p1 so)
(setq p1 (getpoint "\n Point: "))
(command "rectang" p1 "@300,300" "")
(setq so (ssget))
(command "-block" so "nameblock" p1 "")
)

Vấn đề: khi tạo block có name block trùng tên block đã tồn tại thì cad bắt mình định nghĩa lại. Có cách nào đè hay thay thế tên block mới lên tên block cũ có cùng tên hay ko? Và dùng lisp này cho cả file cũ (có chứa block) lẫn file mới chưa có cái block đó.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 05 June 2012 - 12:36 AM

Bạn nghiên cứu hàm tblsearch
  • 0

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


#3 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 05 June 2012 - 07:50 AM

Mình có đoạn lisp sau:

 (defun c: newblock (/ p1 so)
(setq p1 (getpoint "\n Point: "))
(command "rectang" p1 "@300,300" "")
(setq so (ssget))
(command "-block" so "nameblock" p1 "")
)

Vấn đề: khi tạo block có name block trùng tên block đã tồn tại thì cad bắt mình định nghĩa lại. Có cách nào đè hay thay thế tên block mới lên tên block cũ có cùng tên hay ko? Và dùng lisp này cho cả file cũ (có chứa block) lẫn file mới chưa có cái block đó.

Đặt biến hệ thống EXPERT = 2 để bỏ qua dòng nhắc : - “Block already defined. Redefine it?” (-[url="""]BLOCK[/url]) “A drawing with this name already exists. Overwrite it?”

(setvar "expert" 2)
  • 5

#4 Detailing

Detailing

    biết lệnh imageclip

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

Đã gửi 05 June 2012 - 08:36 AM

Đặt biến hệ thống EXPERT = 2 để bỏ qua dòng nhắc : - “Block already defined. Redefine it?” (-BLOCK) “A drawing with this name already exists. Overwrite it?”

(setvar "expert" 2)

Không biết bạn chủ topic có muốn thay thế block đã có bằng block mới ko? hay chỉ lấy tên thôi, block cũ vẫn giữ nguyên?
Nếu làm như ban gia_bach thì tất cả các block đang có sẽ chuyển hết thành block mói.
  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#5 ramborock

ramborock

    biết vẽ arc

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

Đã gửi 05 June 2012 - 12:42 PM

Block mới và cũ đều giống nhau cả tên và đối tượng trong Block. Sỡ dĩ mình muốn làm điều này là để có thể dùng cho cả những file mới chưa có block nào. Mình đã thử cách của bạn Gia_Bach và kết quả là ok. Các block cũ không thay đổi khi đặt biến expert là 2, trừ khi đối tượng block mới khác block cũ, vì vậy thanks bạn Gia_Bach 1 cái. Không biết ae Catviet co hay di uong cafe không nhỉ.
  • 0