Chuyển đến nội dung
Diễn đàn CADViet
nokia

[ yêu cầu] lisp đổi tên blog được chọn

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

 

Xanh: rất có thể bạn đã xóa block đó nhưng tên nó vẫn còn trong danh sách block. Bạn dùng lệnh purge xem nó có còn trên bản vẽ không nhé!

Đỏ: nói gì mà phủ phàng thế: không biết cách dùng mà vẫn biết hay, rồi chả biết để làm gì??? Mỗi lisp được viết ra là để phục vụ người y/c của 1 hoặc nhiều người. Bạn xem lại từ đầu sẽ biết tác dụng của nó.

Thân thương!

 

Ý mình kg phải như thế vì tạo đc block rồi nhưng kg thấy đối tượng mới do mình tạo ra.......bạn hiểu nhầm rồ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

 

Ý mình kg phải như thế vì tạo đc block rồi nhưng kg thấy đối tượng mới do mình tạo ra.......bạn hiểu nhầm rồi >_<

Hề hề hề,

Bạn chú ý các dòng code sau: fn (strcat (getenv "TEMP") "\\" blkNew_Name ".dwg") và (command ".-wblock" fn "_Y" blkName "")

Có nghĩa rằng cái block mới tạo có tên là blnewname và nằm trong file có tên là (strcat (getenv "TEMP") "\\" blkNew_Name ".dwg")

Vì thế muốn tìm nó bạn hãy mở cái file đó ra là thấy. Để mở được file, bạn cần biết cái giá trị của hàm (getenv "temp").

Bạn cứ gõ nó vào dòng command và enter là nhìn thấy. Đó là cái thư mục chứa file blnewname.dwg của bạn. vào đó tìm sẽ thấy file và mở file sẽ có block cần tìm.

Hề hề hề.

 

Một cách khác để bạn thấy nó là dùng lệnh insert rồi chọn cái tên block đó để nhét nó vô bất cứ đâu trên bản vẽ rồi tha hồ ngắm...

  • 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 đúng ý bác B nói thì bạn cũng phải bỏ dòng này trong lisp đi để nhìn thấy file đó :)

 

(vl-file-delete fn)

 

Tuy nhiên, cá nhân mình cũng không hiểu bạn muốn nói gì trong 2 bài viết trê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

Hề hề hề,

Theo mình hiểu thì trong Cad, không cho phép tồn tại hai block giống hệt nhau mà khác tên bạn ạ.

Vậy nên có nhẽ bạn không thể chỉ chuyển tên block được mà phải tạo một block mới rồi chèn trở lại vào vị trí của block cũ mà thôi.

nếu bạn đồng ý cách làm này thì mình có thể viết lisp giùm bạn nhưng nên nhớ rằng hai block lúc này có hình thức giống nhau nhưng cấu trúc của block là hoàn toàn khác và khi sử dụng chúng bạn cần hết sức lưu tâm kẻo nhầm lẫn là nguy đó.

Hề hề hề,...

Bạn đúng là vui tính như tiếng cười của bạn. Thực ra thì ngược lại mới đúng, trong CAD không cho phép tồn tại hai block tên giống hệt nhau. Còn hình dáng thì cứ giống nhau, mặc kệ... :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

Mình đã viết 1 cái rồi nhưng chưa nhớ link, post lại cho bạn. Có thể dùng cho cả Anon Block

;| Change Anonymous Block to normal with new Name@ Ketxu 27 - 9 - 2011|;(defun c:nb( / blkObj blkName blkNew_Name fn pt)(vl-load-com)(defun ST:SS->List-Vla (ss / n e l)  (setq n (sslength ss))  (while (setq e (ssname ss (setq n (1- n))))(setq l (cons (vlax-ename->vla-object e) l))  ))(defun change_block(old new)(foreach blkObj (setq ss (ST:SS->List-Vla (ssget (list (cons 0 "INSERT")(cons 2 old)))))(vla-put-name blkObj new);;change the name(vla-update blkObj)))(grtext -1 "Free Lisp From Cadviet @Ketxu")(setvar "cmdecho" 0)(setqblkObj (vlax-ename->vla-object (car(entsel "\nBlock Source :")))blkName (vlax-get-property blkObj	(if (vlax-property-available-p blkObj 'EffectiveName) 'EffectiveName 'Name)  ) blkNew_Name (getstring "\n New Name :")  fn (strcat (getenv "TEMP") "\\" blkNew_Name ".dwg"))(command ".-wblock" fn "_Y" blkName "") (command "._insert" (strcat blkNew_Name "=" fn) nil )(if (wcmatch "`*" (substr blkName 1 1))(setq blkName (strcat "`*" (substr blkName 2))))(change_block blkName blkNew_Name)(vl-file-delete  fn))

mình có dùng cái này rồi

đối với block thường thì rất ok nhưng đối với block thuộc tính thì ko dùng được

mong bác ketxu xem xét chỉnh sửa giúp vớ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

mình lười dùng lisp quá

thế bạn có lisp này ko vậy, cho mình xin luôn

đối với block thông thường thì dùng lisp này ok

nhưng block của mình có cả thuộc tính  có cả động luôn nên ko dùng đ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

thế bạn có lisp này ko vậy, cho mình xin luôn

đối với block thông thường thì dùng lisp này ok

nhưng block của mình có cả thuộc tính  có cả động luôn nên ko dùng đc

 

Đối với block thuộc tính thì mình hay làm thủ công thế này, bạn có thể tham khảo nhé:

 

- Copy những block thuộc tính muốn đổi tên sang file cad mới. Rồi dùng lệnh Rename để đổi tên trên file cad mới đó.

- Copy những block đã đổi tên trở lại file gốc là đượ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

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


×