Đế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

#1 nokia

nokia

    biết pan

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

Đã gửi 19 October 2011 - 07:44 PM

Do nhu cầu công việc, em rất cần một lisp đổi tên block cục bộ chứ ko phải giống lệnh rename trong cad, cụ thể em xin diễn đạt như sau:
Giả sử có 100 đối tượng block, tên của block là CADVIET nếu ta dùng rename của CAD thì 100 đối tượng block đó đều bị đổi tên, nhưng ở đây em chỉ muốn đổi tên 10 block trong số 100 block đó thôi. Như thế sẽ có 10 đối tượng thuộc block có tên mới là LISP chẳng hạn.
Command: Doiten
select object: Chọn vào 10 block muốn đổi tên
new name: LISP
=> kết quả là 10 đối tượng block được chọn đó được đổi tên từ CADVIET Sang LISP.
Rất mong các anh trên diễn đàn quan tâm giúp đỡ. Em xin chân thành cảm ơn !
  • 0

#2 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 19 October 2011 - 08:48 PM

Do nhu cầu công việc, em rất cần một lisp đổi tên block cục bộ chứ ko phải giống lệnh rename trong cad, cụ thể em xin diễn đạt như sau:
Giả sử có 100 đối tượng block, tên của block là CADVIET nếu ta dùng rename của CAD thì 100 đối tượng block đó đều bị đổi tên, nhưng ở đây em chỉ muốn đổi tên 10 block trong số 100 block đó thôi. Như thế sẽ có 10 đối tượng thuộc block có tên mới là LISP chẳng hạn.
Command: Doiten
select object: Chọn vào 10 block muốn đổi tên
new name: LISP
=> kết quả là 10 đối tượng block được chọn đó được đổi tên từ CADVIET Sang LISP.
Rất mong các anh trên diễn đàn quan tâm giúp đỡ. Em xin chân thành cảm ơn !

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

#3 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 19 October 2011 - 10:38 PM

Do nhu cầu công việc, em rất cần một lisp đổi tên block cục bộ chứ ko phải giống lệnh rename trong cad, cụ thể em xin diễn đạt như sau:
Giả sử có 100 đối tượng block, tên của block là CADVIET nếu ta dùng rename của CAD thì 100 đối tượng block đó đều bị đổi tên, nhưng ở đây em chỉ muốn đổi tên 10 block trong số 100 block đó thôi. Như thế sẽ có 10 đối tượng thuộc block có tên mới là LISP chẳng hạn.
Command: Doiten
select object: Chọn vào 10 block muốn đổi tên
new name: LISP
=> kết quả là 10 đối tượng block được chọn đó được đổi tên từ CADVIET Sang LISP.
Rất mong các anh trên diễn đàn quan tâm giúp đỡ. Em xin chân thành cảm ơn !

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

  • 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


#4 nokia

nokia

    biết pan

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

Đã gửi 20 October 2011 - 07:23 AM

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

Hề hề. Thick cái điệu cười của cái anh có cái nick xấu như con gấu KETXU này. Nhưng mà lisp a viết a chưa chạy thử rùi ?
Chẳng may chạy lisp 100 lần thì mới có lần nó đổi được tên. Và cái thứ 2 là em cần chọn 1 lúc nhiều đối tượng để đổi tên ý. Như thế cho nhanh ạ ? E đã post rõ trong yêu cầu rùi ạ. anh kiểm tra lại giúp em nhé. hí hí. CAD ko làm được mà lisp làm được thì thật là cao siêu.hè hè
  • 0

#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 20 October 2011 - 08:37 AM

Hề hề. Thick cái điệu cười của cái anh có cái nick xấu như con gấu KETXU này. Nhưng mà lisp a viết a chưa chạy thử rùi ?
Chẳng may chạy lisp 100 lần thì mới có lần nó đổi được tên. Và cái thứ 2 là em cần chọn 1 lúc nhiều đối tượng để đổi tên ý. Như thế cho nhanh ạ ? E đã post rõ trong yêu cầu rùi ạ. anh kiểm tra lại giúp em nhé. hí hí. CAD ko làm được mà lisp làm được thì thật là cao siêu.hè hè

Ai nói với bạn là CAD không làm được vậy hè?
Hãy để Lisp giải quyết công việc này
Nếu Lisp làm không được -> Đến lúc đó CAD mới ra tay.
  • 0

#6 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 20 October 2011 - 08:51 AM

Do nhu cầu công việc, em rất cần một lisp đổi tên block cục bộ chứ ko phải giống lệnh rename trong cad, cụ thể em xin diễn đạt như sau:
Giả sử có 100 đối tượng block, tên của block là CADVIET nếu ta dùng rename của CAD thì 100 đối tượng block đó đều bị đổi tên, nhưng ở đây em chỉ muốn đổi tên 10 block trong số 100 block đó thôi. Như thế sẽ có 10 đối tượng thuộc block có tên mới là LISP chẳng hạn.
Command: Doiten
select object: Chọn vào 10 block muốn đổi tên
new name: LISP
=> kết quả là 10 đối tượng block được chọn đó được đổi tên từ CADVIET Sang LISP.
Rất mong các anh trên diễn đàn quan tâm giúp đỡ. Em xin chân thành cảm ơn !

-Trường hợp trong 10 cái block bạn chọn nó bao gồm 1 mớ block khác nhau thì làm nào.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 nokia

nokia

    biết pan

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

Đã gửi 20 October 2011 - 09:07 AM

-Trường hợp trong 10 cái block bạn chọn nó bao gồm 1 mớ block khác nhau thì làm nào.

úi úi.Chỉ xảy ra trường hợp 10 cái em chọn có cùng tên tuổi và năm sinh thôi. Không xảy ra trường hợp khác nhau đó đâu. Mà nếu khác thì thoát lệnh thui ạ !
  • 0

#8 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 October 2011 - 09:14 AM

Chào bạn Nó kìa.
Mình nào có bao giờ dám đưa lisp lên mà chưa test, mà xui cái là thao tác lần nào được lần ấy, nên nghĩ cũng nản.
Phản hồi của bạn quá ít thông tin, không ai biết thế nào mà bắt bệnh, nên chắc là mình khó mà sửa được. CAD đời nào, block thế nào, thông báo lỗi ra sao ...
Bạn nói chạy thử 100 lần thì may ra có lần dùng được. Nếu con số này đúng, thì cái lần may ra ấy thật là kỳ diệu. Vì vậy mong bạn chém nhẹ tay :)
Bạn xem clip, chú ý mục tên của Block!
Thao tác : CHọn 1 Block mẫu => GHi tên Block mới => Chọn các Block sẽ áp dụng tên mới này . Bạn thấy khó hiểu không ? :)
Hình đã gửi
  • 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


#9 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 20 October 2011 - 10:25 AM

Do nhu cầu công việc, em rất cần một lisp đổi tên block cục bộ chứ ko phải giống lệnh rename trong cad, cụ thể em xin diễn đạt như sau:
Giả sử có 100 đối tượng block, tên của block là CADVIET nếu ta dùng rename của CAD thì 100 đối tượng block đó đều bị đổi tên, nhưng ở đây em chỉ muốn đổi tên 10 block trong số 100 block đó thôi. Như thế sẽ có 10 đối tượng thuộc block có tên mới là LISP chẳng hạn.
Command: Doiten
select object: Chọn vào 10 block muốn đổi tên
new name: LISP
=> kết quả là 10 đối tượng block được chọn đó được đổi tên từ CADVIET Sang LISP.
Rất mong các anh trên diễn đàn quan tâm giúp đỡ. Em xin chân thành cảm ơn !

Mình có cái này nhưng chỉ cho chọn 1 BLOCK để đổi thôi.
-Lệnh là: DTB



(defun c:ctb ( )
(command "undo" "be")
(setq ddd (entsel "\nChon BBLOCK muon doi ten"))
(while
(or
(null ddd)
(/= "INSERT" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la Block! Chon lai")
(setq ddd (entsel "\nChon BLOCK muon doi ten"))
)
(setq DT (car ddd))
(setq DTM (entget DT))
(setq TENKHOI (cdr (assoc 2 DTM)))
(setq TENBLOCKMOIDAT (getstring 5"\nNhap ten BLOCK moi:"))
(command "_BEDIT" TENKHOI "" "_BSAVEAS" TENBLOCKMOIDAT "_BCLOSE")
(setq DTM (subst (cons 2 TENBLOCKMOIDAT) (assoc 2 DTM) DTM))
(entmod DTM)
(command "undo" "end")
(Princ))

Sau đó dùng lisp sau để MA tên BLOK đối tượng vừa đổi sang các BLOCK khác.
-Tên lệnh: MABT
 

(defun c:mabt ()
(command "undo" "be")
(setq donvi (/ (getvar "viewsize") 40))
(setq ddd (entsel "\nChon Block mau"))
(while
(or
(null ddd)
(/= "INSERT" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la Block! Chon lai")
(setq ddd (entsel "\nChon Block mau"))
)
(setq DT (car ddd))
(setq DTM (entget DT))
(setq TENKHOI (cdr (assoc 2 DTM)))
(setq DIEMCHENMAU (cdr (assoc 10 DTM)))
(setq diemvt1 (polar DIEMCHENMAU pi donvi))
(setq diemvt2 (polar DIEMCHENMAU (* 2 pi) donvi))
(setq diemvt3 (polar DIEMCHENMAU (/ pi 2) donvi))
(setq diemvt4 (polar DIEMCHENMAU (- 0 (/ pi 2)) donvi))
(grdraw diemvt1 diemvt2 3)
(grdraw diemvt3 diemvt4 3)

(Princ "\nChon BLOCK muon chinh :")
(setq xx (ssget '((0 . "insert"))))
(setq L 0)
(setq M (sslength XX))
(while (< L M)
(setq DTs (ssname XX L))
(setq DTMs (entget DTs))
(setq TENKHOIM TENKHOI)
(setq DTMs (subst (cons 2 TENKHOIM) (assoc 2 DTMs) DTMs))
(entmod DTMs)

(setq L (1+ L))
)
(command ".pan" DIEMCHENMAU DIEMCHENMAU)
(command "undo" "end")
(Princ))

  • 2

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#10 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 20 October 2011 - 10:30 AM

úi úi.Chỉ xảy ra trường hợp 10 cái em chọn có cùng tên tuổi và năm sinh thôi. Không xảy ra trường hợp khác nhau đó đâu. Mà nếu khác thì thoát lệnh thui ạ !

Hề hề hề,
Nếu chê cái của bác Ketxu thì có thể dùng thử cái này coi sao, Tuy chả hay được như của bác ket nhưng may ra lại là hay với bạn hỉ????


(defun c:chbl (/ m old pc new sbl p)
(vl-load-com)
(command "undo" "be")
(setq m (car (entsel "\n chon block mau can thay "))
old (cdr (assoc 2 (entget m)))
pc (cdr (assoc 10 (entget m)))
new (getstring t "\n Nhap ten thay the: ")
)
(if (= (tblsearch "block" new) nil)
(command "block" new pc m "")
)
(command "insert" old pc 1 "" "")
(prompt "\n Chon tap cac block can thay ten ")
(setq sbl (acet-ss-to-list (ssget (list (cons 0 "insert") (cons 2 old)))))
(foreach x sbl
(setq p (cdr (assoc 10 (entget x))))
(command "erase" x "")
(command "insert" new p 1 "" "")
)
(command "undo" "e")
(princ)
)
Hề hề hề,.....
Trúng hay trật xin chớ cười chê....
Nhớ là cái trình tự thao tác không giống như bạn mô tả đâu.
Khi chạy lisp sẽ yêu cầu bạn chọn 1 block bất kỳ cùng tên với các block muốn đổi tên gọi là block mau.
Sau đó yêu cầu nhập cái tên mà bạn muốm đổi thành.
Lisp sẽ tạo một block mới toe mang cái tên mà bạn muốn, có hình hài giống y cái cũ.
Sau đó lisp yêu cầu bạn chọn tập hợp các block cần đổi tên.
Thế là nó sẽ tự đưa các block với tên mới vào thay thế cho các block tên cũ.
Hề hề hề,.
Nhìn thì thấy giống nhưng thật ra nó là hai block có cấu trúc khác nhau đấy. Hãy cẩn thận kẻo mà bé cái nhầm.....
Hy vọng gãi đúng chỗ bạn ngứa.
Hề hề hề,....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 20 October 2011 - 10:51 AM

Hề hề hề,
Nếu chê cái của bác Ketxu thì có thể dùng thử cái này coi sao, Tuy chả hay được như của bác ket nhưng may ra lại là hay với bạn hỉ????



(defun c:chbl (/ m old pc new sbl p)
(vl-load-com)
(command "undo" "be")
(setq m (car (entsel "\n chon block mau can thay "))
old (cdr (assoc 2 (entget m)))
pc (cdr (assoc 10 (entget m)))
new (getstring t "\n Nhap ten thay the: ")
)
(if (= (tblsearch "block" new) nil)
(command "block" new pc m "")
)
(command "insert" old pc 1 "" "")
(prompt "\n Chon tap cac block can thay ten ")
(setq sbl (acet-ss-to-list (ssget (list (cons 0 "insert") (cons 2 old)))))
(foreach x sbl
(setq p (cdr (assoc 10 (entget x))))
(command "erase" x "")
(command "insert" new p 1 "" "")
)
(command "undo" "e")
(princ)
)
Hề hề hề,.....
Trúng hay trật xin chớ cười chê....
Nhớ là cái trình tự thao tác không giống như bạn mô tả đâu.
Khi chạy lisp sẽ yêu cầu bạn chọn 1 block bất kỳ cùng tên với các block muốn đổi tên gọi là block mau.
Sau đó yêu cầu nhập cái tên mà bạn muốm đổi thành.
Lisp sẽ tạo một block mới toe mang cái tên mà bạn muốn, có hình hài giống y cái cũ.
Sau đó lisp yêu cầu bạn chọn tập hợp các block cần đổi tên.
Thế là nó sẽ tự đưa các block với tên mới vào thay thế cho các block tên cũ.
Hề hề hề,.
Nhìn thì thấy giống nhưng thật ra nó là hai block có cấu trúc khác nhau đấy. Hãy cẩn thận kẻo mà bé cái nhầm.....
Hy vọng gãi đúng chỗ bạn ngứa.
Hề hề hề,....

Hề hề hề... Bệnh nghề nghiệp (tôi đã từng mắc)... Hề hề hề... Dùng (vl-load-com) để mần chi mô? Hề hề hề.
  • 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.


#12 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 20 October 2011 - 12:15 PM

Hề hề hề... Bệnh nghề nghiệp (tôi đã từng mắc)... Hề hề hề... Dùng (vl-load-com) để mần chi mô? Hề hề hề.

Hề hề hề,
Dùng (vl-load-com) vì trong lisp có xài tới thằng (acet-ss-to-list .....) bác ạ.
Do chưa hiểu lắm vế mấy thằng acet nên cứ nhét vô cho nó thêm..... lẩm cẩm bác ạ.
Hề hề hề
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#13 duy782006

duy782006

    PHẠM QUỐC DUY

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

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

Hề hề hề,
Nếu chê cái của bác Ketxu thì có thể dùng thử cái này coi sao, Tuy chả hay được như của bác ket nhưng may ra lại là hay với bạn hỉ????



(defun c:chbl (/ m old pc new sbl p)
(vl-load-com)
(command "undo" "be")
(setq m (car (entsel "\n chon block mau can thay "))
old (cdr (assoc 2 (entget m)))
pc (cdr (assoc 10 (entget m)))
new (getstring t "\n Nhap ten thay the: ")
)
(if (= (tblsearch "block" new) nil)
(command "block" new pc m "")
)
(command "insert" old pc 1 "" "")
(prompt "\n Chon tap cac block can thay ten ")
(setq sbl (acet-ss-to-list (ssget (list (cons 0 "insert") (cons 2 old)))))
(foreach x sbl
(setq p (cdr (assoc 10 (entget x))))
(command "erase" x "")
(command "insert" new p 1 "" "")
)
(command "undo" "e")
(princ)
)
Hề hề hề,.....
Trúng hay trật xin chớ cười chê....
Nhớ là cái trình tự thao tác không giống như bạn mô tả đâu.
Khi chạy lisp sẽ yêu cầu bạn chọn 1 block bất kỳ cùng tên với các block muốn đổi tên gọi là block mau.
Sau đó yêu cầu nhập cái tên mà bạn muốm đổi thành.
Lisp sẽ tạo một block mới toe mang cái tên mà bạn muốn, có hình hài giống y cái cũ.
Sau đó lisp yêu cầu bạn chọn tập hợp các block cần đổi tên.
Thế là nó sẽ tự đưa các block với tên mới vào thay thế cho các block tên cũ.
Hề hề hề,.
Nhìn thì thấy giống nhưng thật ra nó là hai block có cấu trúc khác nhau đấy. Hãy cẩn thận kẻo mà bé cái nhầm.....
Hy vọng gãi đúng chỗ bạn ngứa.
Hề hề hề,....

đọc lisp thì thấy bác xoá cái block đi rồi insert cái mới vào như thề hông ổn bác ơi. Còn layer, góc, tỉ lệ và linh tinh cái nửa.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#14 ketxu

ketxu

    Copier - Paster - Editor

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

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

Dùng ý Bsaveas của bác Duy có vẻ êm hơn Wblock. Tks bác. Chỉ gặp 1 chút vấn đề với Anonymous Block thôi ^^
  • 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


#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

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

Với lại, mấy cái (command "insert"...) thì bác Hề hề hề nhớ cho thêm osnap kẻo nguy.
  • 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.


#16 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 20 October 2011 - 03:21 PM

đọc lisp thì thấy bác xoá cái block đi rồi insert cái mới vào như thề hông ổn bác ơi. Còn layer, góc, tỉ lệ và linh tinh cái nửa.

Hề hề hề,
Vì thế nên mới (command "insert" new p 1 "" "") cho khỏi scale hay xoay xiếc chi nữa. Các cái linh tinh khác thì hậu xét ạ.
Hề hề hề,...
@ bác Doanvanha: Cái thằng osnap này thế mà hay bị quên lắm. Thank bác đã nhắc nhở.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#17 nokia

nokia

    biết pan

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

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

Hề hề hề,
Vì thế nên mới (command "insert" new p 1 "" "") cho khỏi scale hay xoay xiếc chi nữa. Các cái linh tinh khác thì hậu xét ạ.
Hề hề hề,...
@ bác Doanvanha: Cái thằng osnap này thế mà hay bị quên lắm. Thank bác đã nhắc nhở.....

ú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é.
Cảm ơn các đại ca khác đã tham gia xử vụ rắc rối này. Tiện thể em comment luôn, cái lisp CHBL không đổi tên được, ko bit là e ko bit dùng hay thế nào. Lisp CTB thì đổi ngon lành nhưng mà chỉ được 1 đối tượng, nếu để phát triển lên thì em nghĩ dùng tính năng lưu tên mới vừa nhập thì là ngon. Lisp mabt thì có cái hay riêng. hềhề. Thui hnay 20/10 các bác nghỉ sớm rùi đưa người iu đi nhà nghỉ cho mát. hí hí. cái anh có nick name xấu xí KETXU giải thick rõ và lisp của anh ý viết chuẩn theo yêu cầu rùi. hí hí. Chúc các anh trên diễn đàn mạnh khỏe và có nhìu sáng kiến mới. hí hí. Em có lisp rùi. mang về dùng thui. hề hề
  • 0

#18 ketxu

ketxu

    Copier - Paster - Editor

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

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

@bác Bình : E thì ghi sổ 1 chữ vàng là "_non", cứ có command yêu cầu nhập điểm ở đâu thì nhét nó vào đó ^^ Ngại lưu rồi lại gán biến os lắm ^^
Cách của e và bác Duy đều là tạo ra 1 Block Def mới trong bản vẽ (ư thì wblock, bác Duy Bsaveas), sau đó đổi tên những thằng được chọn thành tên thằng mới tạo. Như vậy có lợi thế hơn ở việc các thiết đặt không bị thay đổi (có thể bao gồm cả Xdata nữa lắm chứ hén), hoặc giả Block ATT thì lại phải xử lý mấy biến liên quan tới att ^^
  • 2

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


#19 duy782006

duy782006

    PHẠM QUỐC DUY

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

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

@bác Bình : E thì ghi sổ 1 chữ vàng là "_non", cứ có command yêu cầu nhập điểm ở đâu thì nhét nó vào đó ^^ Ngại lưu rồi lại gán biến os lắm ^^
Cách của e và bác Duy đều là tạo ra 1 Block Def mới trong bản vẽ (ư thì wblock, bác Duy Bsaveas), sau đó đổi tên những thằng được chọn thành tên thằng mới tạo. Như vậy có lợi thế hơn ở việc các thiết đặt không bị thay đổi (có thể bao gồm cả Xdata nữa lắm chứ hén), hoặc giả Block ATT thì lại phải xử lý mấy biến liên quan tới att ^^

Ớ cái thèn _non dùng như nào ketxu ví dụ cho coi phát đi. thank
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#20 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 October 2011 - 03:56 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 "")
  • 3

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