Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
31 replies to this topic

#21 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 October 2011 - 04:03 PM

úi chết. Cái lisp của bác KETXU xấu xí kia em ko bit dùng nên kết luận oan. hí hí. Xin lỗi bác nhé.
. hí hí. cái anh có nick name xấu xí KETXU ...

Cám ơn bạn đã khen :| Không biết từ đâu mà đời ket xuống dốc ghê quá ^^
Hy vọng lần sau bạn test kỹ trước nhé (mặc dù mình cũng chưa test kỹ đc, hề hề)
PS thêm 1 lần nữa Két Xù là nick name của 1 nhân vật hài trong phim Ông Trùm ^^, không phải là Kẹt xu như nhiều bác thương tình tặng Ket :D
  • 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


#22 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 20 October 2011 - 04:27 PM

Tham số "_non" trong dòng command có nghĩa là bỏ qua chế độ Osnap. Sử dụng ngay sau tên lệnh và có thể chèn nhiều lần trong command bác ạ :
Ví dụ vẽ Line từ P1 -> P2 :
(command "._Line" "_non" p1 p2 "")
Hoặc (command "._Line" "_non" p1 "_non" p2 "")

Chuyên phát hiện những điều kỳ quặc chính là kẻ thất tình xấu xí đang ngồi bên bờ sông kia! Hỏi thêm tí: sau (command "line"...) thì dùng "_non" 1 lần hay bắt buộc bao nhiêu pt là bấy nhiêu non cao biển rộng?
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#23 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 October 2011 - 04:39 PM

Chuyên phát hiện những điều kỳ quặc chính là kẻ thất tình xấu xí đang ngồi bên bờ sông kia! Hỏi thêm tí: sau (command "line"...) thì dùng "_non" 1 lần hay bắt buộc bao nhiêu pt là bấy nhiêu non cao biển rộng?

Nó chỉ có tác dụng với 1 điểm kế tiếp ngay sau nó ^^
  • 1

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


#24 nhatphong

nhatphong

    biết vẽ circle

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

Đã gửi 01 December 2011 - 02:48 PM

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)
(setq
blkObj (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)
)


bạn KETXU cho hỏi mình tạo được tên block mới rồi nhưng kg tìm đc nó nhưng xem trong list block thì vẫn có....làm cách nào để tìm đc cái blog tên mới mà mình mới tạo kg....lisp này rất hay nhưng kg biết cách dùng nên cũng chả biết để làm gì >_<
  • 0

#25 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 December 2011 - 03:24 PM


bạn KETXU cho hỏi mình tạo được tên block mới rồi nhưng kg tìm đc nó nhưng xem trong list block thì vẫn có....làm cách nào để tìm đc cái blog tên mới mà mình mới tạo kg....lisp này rất hay nhưng kg biết cách dùng nên cũng chả biết để làm gì >_<


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!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#26 nhatphong

nhatphong

    biết vẽ circle

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

Đã gửi 02 December 2011 - 08:01 AM


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 >_<
  • 0

#27 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 02 December 2011 - 02:04 PM


Ý 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...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#28 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 02 December 2011 - 02:20 PM

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
  • 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


#29 only102

only102

    biết vẽ pline

  • Advance Member
  • PipPip
  • 63 Bài viết
Điểm đánh giá: 15 (tàm tạm)

Đã gửi 02 December 2011 - 04:30 PM

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
  • 0
Không sợ việc gì khó! Chỉ sợ việc bất khả thi...

#30 hoquangvinh

hoquangvinh

    biết lệnh mirror

  • Members
  • PipPipPip
  • 154 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 September 2016 - 03:38 PM

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)

(setq

blkObj (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


  • 0

#31 MarioDaurer1234

MarioDaurer1234

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 16 September 2016 - 03:50 PM

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


  • 0

Đào tạo land desktop 2009  phục vụ thi công


#32 hoquangvinh

hoquangvinh

    biết lệnh mirror

  • Members
  • PipPipPip
  • 154 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 September 2016 - 05:09 PM

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


  • 0