Đến nội dung


Hình ảnh
- - - - -

convert anonymous block to normal block


  • Please log in to reply
38 replies to this topic

#1 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 11 April 2007 - 11:20 AM

hôm nay gặp một bài toán khó, là hiệu chỉnh một block anonymous. Ví dụ trong file này: http://www.cadviet.c.../new_block3.zip

AutoCAD không cho chỉnh sửa block anonymous (là block có tên đầu bằng *, vd *U123).
May thay, tìm kiếm được lisp đổi block anonymous sang block bình thường tại trang http://www.draftsperson.net

;===============================================
; UnAnon.Lsp Jul 05, 1998
;======================================
(princ "\nCopyright © 1998, Fabricated Designs, Inc.")
(princ "\nLoading UnAnon v1.0 ")
(setq uan_ nil lsp_file "UnAnon")

;================== For Automated Calling From Another Program =========
(defun uan_auto (ar1) (UnAnon ar1))

;================== Macros =============================================
(defun PDot ()(princ "."))

(PDot);++++++++++++ Set Modes & Error ++++++++++++++++++++++++++++++++++
(defun uan_smd ()
(SetUndo)
(setq olderr *error*
*error* (lambda (e)
(and (/= e "quit / exit abort")
(princ (strcat "\nError: *** " e " *** ")))
(command "_.UNDO" "_END" "_.U")
(uan_rmd))
uan_var '(
("CMDECHO" . 0) ("MENUECHO" . 0) ("MENUCTL" . 0) ("MACROTRACE" . 0)
("OSMODE" . 0) ("SORTENTS" . 119)("MODEMACRO" . ".")
("BLIPMODE" . 0) ("EXPERT" . 0) ("SNAPMODE" . 1) ("PLINEWID" . 0.0)
("ORTHOMODE" . 1) ("GRIDMODE" . 0) ("ELEVATION" . 0) ("THICKNESS" . 0)
("FILEDIA" . 0) ("FILLMODE" . 0) ("SPLFRAME" . 0) ("UNITMODE" . 0)
("TEXTEVAL" . 0) ("ATTDIA" . 0) ("AFLAGS" . 0) ("ATTREQ" . 1)
("ATTMODE" . 1) ("UCSICON" . 1) ("HIGHLIGHT" . 1) ("REGENMODE" . 1)
("COORDS" . 2) ("DRAGMODE" . 2) ("DIMZIN" . 1) ("PDMODE" . 0)
("CECOLOR" . "BYLAYER") ("CELTYPE" . "BYLAYER")))
(foreach v uan_var
(setq m_v (cons (getvar (car v)) m_v)
m_n (cons (car v) m_n))
(setvar (car v) (cdr v)))
(princ (strcat (getvar "PLATFORM") " Release " (substr (ver) 18 2)
" - Convert To Anonymous Blocks ....\n"))
(princ))

(PDot);++++++++++++ Return Modes & Error +++++++++++++++++++++++++++++++
(defun uan_rmd ()
(setq *error* olderr)
(mapcar 'setvar m_n m_v)
(command "_.UNDO" "_END")
(prin1))

(PDot);++++++++++++ Set And Start An Undo Group ++++++++++++++++++++++++
(defun SetUndo ()
(and (zerop (getvar "UNDOCTL"))
(command "_.UNDO" "_ALL"))
(and (= (logand (getvar "UNDOCTL") 2) 2)
(command "_.UNDO" "_CONTROL" "_ALL"))
(and (= (logand (getvar "UNDOCTL") 8) 8)
(command "_.UNDO" "_END"))
(command "_.UNDO" "_GROUP"))

(PDot);++++++++++++ Get Entity Name ++++++++++++++++++++++++++++++++++++
(defun GetOne (/ st os)
(setq os (getvar "SNAPMODE") s nil)
(setvar "SNAPMODE" 0)
(while (not st)
(setq st (ssget)))
(while (> (sslength st) 1)
(setq st nil)
(princ "\nOnly 1 At A Time Please\n")
(while (not st)
(setq st (ssget))))
(setvar "SNAPMODE" os)
(setq s (ssname st 0)))

(PDot);++++++++++++ Convert An Anonymous Block To Named Block ++++++++++
(defun UnAnon (b / tdef en ed bc bn bd in) ;Supply ename
(setq bn "TEMP1" bc 1)
(while (tblsearch "BLOCK" bn)
(setq bc (1+ bc) bn (strcat "TEMP" (itoa bc))))
(and (= (type B ) 'ENAME)
(setq bd (entget B )
in (cdr (assoc 2 bd))))
(if (or (not bd)
(not in)
(/= "INSERT" (cdr (assoc 0 bd)))
(/= "*U" (substr in 1 2))
(= (logand (cdr (assoc 70 (tblsearch "BLOCK" in))) 4) 4)
(= (logand (cdr (assoc 70 (tblsearch "BLOCK" in))) 16) 16)
(= (logand (cdr (assoc 70 (tblsearch "BLOCK" in))) 32) 32))
(progn
(princ "*** Not An Anonomymous Block *** ")
(setq bn nil bc nil bd nil in nil b nil)
(exit)))
(setq tdef (tblsearch "BLOCK" in)
en (cdr (assoc -2 tdef))
ed (entget en))
(entmake (list (cons 0 "BLOCK")
(cons 2 bn)
(cons 70 0)
(cons 10 (cdr (assoc 10 tdef)))))
(entmake ed)
(while (setq en (entnext en))
(setq ed (entget en))
(entmake ed))
(entmake (list (cons 0 "ENDBLK")))
(setq bd (subst (cons 2 bn) (assoc 2 bd) bd))
(entmod bd)
(entupd B )
(princ (strcat "\n" bn)))

(PDot);************ Main Program ***************************************
(defun uan_ (/ m_v m_n olderr uan_var s)
(uan_smd)
(GetOne)
(UnAnon s)
(uan_rmd))

(defun c:UnAnonall (/ ss i)
(setq ss (ssget "X" (list (cons 0 "INSERT")(cons 67 (if (= (getvar "TILEMODE") 1) 0 1)))))
(and ss
(setq i (sslength ss))
(while (not (minusp (setq i (1- i))))
(setq en (ssname ss i))
(if (= "*U" (substr (cdr (assoc 2 (entget en))) 1 2))
(UnAnon en))))
(prin1))

(PDot);************ Load Program ***************************************
(defun C:UnAnon () (uan_))
(if uan_ (princ "\nUnAnon Loaded\n"))
(prin1)
;================== End Program ========================================
dùng lệnh UnAnon hoặc UnAnonAll để biến một hoặc tất cả các block anonymous.

Và sau đó dùng lệnh bedit hoặc refedit để hiệu chỉnh nó.
  • 2

#2 be_chanh

be_chanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1712 Bài viết
Điểm đánh giá: 889 (rất tốt)

Đã gửi 12 April 2007 - 01:25 AM

Oái! FD viết cái này được gàn 10 năm rồi cơ à? Nhanh thật!
Mà sao trong code lisp còn có cả SMILE là sao hả bác
  • 0

t: 097.323.1199 | m: cudstk@gmail.com | w: http://www.aicollect.com


#3 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 12 April 2007 - 01:38 AM

à, là do lệnh (entupd B ) thì ký hiệu B đi liền với dấu ) thành là thành :lol: ấy mà.
  • 0

#4 be_chanh

be_chanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1712 Bài viết
Điểm đánh giá: 889 (rất tốt)

Đã gửi 12 April 2007 - 11:10 AM

Hôm qua định test con này nhưng vì cái SMILE đó mà lười. :lol: Bác ơi. Con này làm cho con LockDWG vô hiệu à?
  • 0

t: 097.323.1199 | m: cudstk@gmail.com | w: http://www.aicollect.com


#5 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 28 May 2007 - 05:11 PM

AutoCAD không cho chỉnh sửa block anonymous (là block có tên đầu bằng *, vd *U123).



Mà làm sao tạo được block anonymous bác chỉ giúp luôn đi. Mà con lockdwg bac pót chổ nào em tìm không thấy. Bác chỉ lại giúp em cám ơn nhìu.
  • 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


#6 magicstone

magicstone

    biết pan

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

Đã gửi 02 September 2007 - 06:42 PM

sao em load lên nó báo lỗi vậy?Hình như báo lỗi thiếu hay thừa dấu ngoặc thì phải.
  • 0
Nhà: http://revitviet.vn <----- revit và lập trình trong revit
Lang thang: http://magic.revitviet.vn <----- Hầm bà lằng nhằng

#7 thoclep

thoclep

    biết lệnh offset

  • Members
  • PipPipPip
  • 170 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 17 January 2008 - 04:11 PM

Lisp này em lấy về lâu rồi, bây giờ mới đem ra sử dụng. Tại sao sau khi load lisp, em đánh lệnh UnAnon hoặc UnAnonAll thì cad đều báo lỗi. Bác xem giúp em được không?
  • 0

#8 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 17 January 2008 - 06:12 PM

Lisp này em lấy về lâu rồi, bây giờ mới đem ra sử dụng. Tại sao sau khi load lisp, em đánh lệnh UnAnon hoặc UnAnonAll thì cad đều báo lỗi. Bác xem giúp em được không?

báo lỗi gì bạn?
  • 0

#9 thoclep

thoclep

    biết lệnh offset

  • Members
  • PipPipPip
  • 170 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 18 January 2008 - 12:14 AM

báo lỗi gì bạn?

Xin lỗi bác! Em nhầm, không phải là báo lỗi mà là không nhận 2 lệnh trên

Command: ap APPLOAD convertanyblock.lsp successfully loaded.
convertanyblock.lsp successfully loaded.


Command:
Copyright =A9 1998, Fabricated Designs, Inc.
Loading UnAnon v1.0 ....; error: malformed list on input

Command:
Copyright =A9 1998, Fabricated Designs, Inc.
Loading UnAnon v1.0 ....; error: malformed list on input

Command:
Command: UnAnon
Unknown command "UNANON". Press F1 for help.

Command: UnAnonall
Unknown command "UNANONALL". Press F1 for help.
  • 0

#10 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 18 January 2008 - 10:15 AM

Xin lỗi bác! Em nhầm, không phải là báo lỗi mà là không nhận 2 lệnh trên

Command: ap APPLOAD convertanyblock.lsp successfully loaded.
convertanyblock.lsp successfully loaded.


Command:
Copyright =A9 1998, Fabricated Designs, Inc.
Loading UnAnon v1.0 ....; error: malformed list on input

Command:
Copyright =A9 1998, Fabricated Designs, Inc.
Loading UnAnon v1.0 ....; error: malformed list on input

Command:
Command: UnAnon
Unknown command "UNANON". Press F1 for help.

Command: UnAnonall
Unknown command "UNANONALL". Press F1 for help.


Bạn copy thiếu dấu ngoặc.
Bạn hãy thử lại copy một cách cẩn thận đoạn code trên rồi paste vào file lisp.
  • 0

#11 dongkhanhlove

dongkhanhlove

    biết pan

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

Đã gửi 23 February 2008 - 10:11 PM

Bác Hoành ơi ! Dù em đã copy thật là kỹ nhưng chẳng hiểu sao cad cứ báo lỗi là :


Command: ap
APPLOAD convertanyblock.lsp successfully loaded.


Command:
Copyright © 1998, Fabricated Designs, Inc.
Loading UnAnon v1.0 .....; error: malformed string on input

Command: UnAnon
Unknown command "UNANON". Press F1 for help.

Command: UnAnonall
Unknown command "UNANONALL". Press F1 for help.
  • 0
Tri thức là vô giá !!!!!!!!!!!!!!!!!

#12 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 23 February 2008 - 10:32 PM

Bác Hoành ơi ! Dù em đã copy thật là kỹ nhưng chẳng hiểu sao cad cứ báo lỗi là :

Command: ap
APPLOAD convertanyblock.lsp successfully loaded.


Bạn download file này về rồi appload vào acad và dùng xem sao?
http://www.cadviet.com/upfiles/cab2nb.vlx
  • 1

#13 dongkhanhlove

dongkhanhlove

    biết pan

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

Đã gửi 24 February 2008 - 08:42 AM

Bạn download file này về rồi appload vào acad và dùng xem sao?
http://www.cadviet.c...iles/cab2nb.vlx

Bây giờ thì đã chạy tốt rồi ! Cảm ơn bác !
  • 0
Tri thức là vô giá !!!!!!!!!!!!!!!!!

#14 nguyenbakien

nguyenbakien

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 29 October 2008 - 04:37 PM

Bạn download file này về rồi appload vào acad và dùng xem sao?
http://www.cadviet.com/upfiles/cab2nb.vlx

Các bác cho em hoi cái này xíu:
- Em có nhận được một file địa hình đã chuyển thành *.dwg, nhưng các số cao độ trong đó nhỏ quá nên in ra không thấy gì cả.
Em không biết cách nào để đổi chiều cao đồng loạt của tất cả các cao đọ trong bản vẽ cả.
E có dung bedit dể sửa nhưng không được.
E chỉ có cách là scale từng con sô thôi.
Các Bác có cách nào để đổi Block đó chỉ giups em với.
Thanks!
  • 0

#15 Flex

Flex

    biết lệnh erase

  • Members
  • PipPipPip
  • 104 Bài viết
Điểm đánh giá: 22 (tàm tạm)

Đã gửi 29 October 2008 - 10:33 PM

Các bác cho em hoi cái này xíu:
- Em có nhận được một file địa hình đã chuyển thành *.dwg, nhưng các số cao độ trong đó nhỏ quá nên in ra không thấy gì cả.
Em không biết cách nào để đổi chiều cao đồng loạt của tất cả các cao đọ trong bản vẽ cả.
E có dung bedit dể sửa nhưng không được.
E chỉ có cách là scale từng con sô thôi.
Các Bác có cách nào để đổi Block đó chỉ giups em với.
Thanks!


Block của bác có thể là attribute nên chữ nhỏ, Bác explode nó ra rồi xem kiểu của nó là gì, sau đó thay đổi lại chiều cao của kiểu đó. Nếu mà block này trong chương trình người ta set cao chữ cho nó chỉ có cách viết tiện ích thay đổi cao chữ của nó mà thôi. Chúc may mắn.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#16 nguyenbakien

nguyenbakien

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 29 October 2008 - 10:45 PM

Block của bác có thể là attribute nên chữ nhỏ, Bác explode nó ra rồi xem kiểu của nó là gì, sau đó thay đổi lại chiều cao của kiểu đó. Nếu mà block này trong chương trình người ta set cao chữ cho nó chỉ có cách viết tiện ích thay đổi cao chữ của nó mà thôi. Chúc may mắn.

E upload file lên các Bác xem thử nha:
Nếu được các Bác chỉ gíp em cách đổi với .
thanks!
http://www.cadviet.c..._ngoai_quan.dwg
  • 0

#17 Flex

Flex

    biết lệnh erase

  • Members
  • PipPipPip
  • 104 Bài viết
Điểm đánh giá: 22 (tàm tạm)

Đã gửi 29 October 2008 - 10:57 PM

E upload file lên các Bác xem thử nha:
Nếu được các Bác chỉ gíp em cách đổi với .
thanks!
http://www.cadviet.c..._ngoai_quan.dwg


Em xem rồi, nó là block attribute có set độ cao của từng chữ. Cái này thì chỉ có cách viết tool thôi, bác search thử trong thư viện cadviet xem có chưa, nếu chưa có thì chỉ còn cách viết cái tool khác. Bác cần thì alo em, để thay đổi và sắp xếp lại các phần trong block điểm này thì cũng hơi mất công đấy.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#18 Snowman

Snowman

    biết lệnh mirror

  • Members
  • PipPipPip
  • 155 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 29 October 2008 - 11:19 PM

Em xem rồi, nó là block attribute có set độ cao của từng chữ. Cái này thì chỉ có cách viết tool thôi, bác search thử trong thư viện cadviet xem có chưa, nếu chưa có thì chỉ còn cách viết cái tool khác. Bác cần thì alo em, để thay đổi và sắp xếp lại các phần trong block điểm này thì cũng hơi mất công đấy.

Không cần tool hay lisp gì đâu, chỉ cần dùng lệnh CAD là đủ rồi.
Bạn dùng lệnh BEDIT để scale tất cả (hoặc chỉ thay đổi chiều cao của Text (thực chất là Attribute))
Sau đó dùng lệnh BATTMAN để update lại block đó sẽ được như ý.
Bạn có thể tìm hiểu thêm về cách tạo và hiệu chỉnh Block attribute trên diễn đàn.

@Flex : Bạn sẽ ko thể trở thành một nhà kinh doanh giỏi đâu <_<
  • 0

. - ' * ' - .. - ... "Sống trong đời sống cần có một tấm lòng..." . - ' * ' - .. -
-----------------------------------------------------------------------------------

Hình đã gửi Hình đã gửi


#19 quocanhxd05

quocanhxd05

    biết vẽ ellipse

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

Đã gửi 30 December 2008 - 12:47 PM

Bạn download file này về rồi appload vào acad và dùng xem sao?
http://www.cadviet.com/upfiles/cab2nb.vlx


Anh Hoanh ơi. Em load về rồi nhưng nó báo như thế này.

Command: unanon
Regenerating layout.
Microsoft Windows NT Version 5.1 (x86) Release (e - Convert To Anonymous Blocks
....

Select objects: 1 found

Select objects: 1 found, 1 removed, 0 total

Select objects: Specify opposite corner: 0 found
Select objects: Specify opposite corner: 1 found, 1 total

Select objects:
*** Not An Anonomymous Block *** Regenerating layout.

Bác xem dùm.Em cũng đang cần.
  • 0
-------------------- Sống ở trên đời cần một chữ NHẪN --------------------

#20 sugia294

sugia294

    biết pan

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

Đã gửi 21 November 2010 - 12:01 AM

Anh Hoanh ơi. Em load về rồi nhưng nó báo như thế này.

Command: unanon
Regenerating layout.
Microsoft Windows NT Version 5.1 (x86) Release (e - Convert To Anonymous Blocks
....

Select objects: 1 found

Select objects: 1 found, 1 removed, 0 total

Select objects: Specify opposite corner: 0 found
Select objects: Specify opposite corner: 1 found, 1 total

Select objects:
*** Not An Anonomymous Block *** Regenerating layout.

Bác xem dùm.Em cũng đang cần.

Mình cũng bị như vậy không hiểu sao nữa..??
  • 0