Đến nội dung


Hình ảnh

Anh chị cho hỏi làm sao thay đổi nội dung trong table này!


  • Please log in to reply
8 replies to this topic

#1 thanhnhutdang

thanhnhutdang

    biết zoom

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

Đã gửi 29 April 2013 - 05:00 PM

Chào anh chị và các bạn!

Mình muốn thay đổi nội dung trong khung tên này để cá nhân sử dụng nhưng không biết thuộc tính của dạng này là gì!

Anh chị kiểm tra và giải quyết giúp.

Cảm ơn.

Link file:

Similar topics from web:
Flash and VIOLET
Thảo luận Wikipedia:Bàn giúp đỡ/Lưu 1 – Wikipedia tiếng Việt
Cho hỏi: Làm thế nào để lấy dữ liệu từ sheet này qua sheet khác ...
Mẫu phiếu đăng ký dự thi (ĐKDT) Đại học, Cao đẳng năm 2013 ...
Một lần \tranh luận\ với Cảnh sát cơ động
Hỏi đáp liên quan đến : Em muốn hỏi về cách chơi chứng khoán?
Tâm Anh | Tiếng cười của anh là khúc nhạc trong lòng em… | Trang 2
Thắc mắc/Hỏi Yahoo Mesenger không đăng nhập được ...
Dễ dàng dâng “cái ngàn vàng”...
Angela Phương Trinh thấy nhục nhã trước những điều tiếng
\Tiền mất tật mang\ vì tẩy trắng răng- VnExpress Gia Đình
Cô giáo thi viên chức: \Nhiều lúc thấy mình lạc lõng quá ...
Hồ sơ hoàn công? [Lưu Trữ]
Wikipedia:Tin nhắn cho bảo quản viên – Wikipedia tiếng Việt
kinh nghiệm khi gửi hồ sơ ứng tuyển qua Email | Phạm Duy Anh

http://www.mediafire...q9bmfvse3ku6h4f

 

Chào anh chị và các bạn!

Mình muốn thay đổi nội dung trong khung tên này để cá nhân sử dụng nhưng không biết thuộc tính của dạng này là gì!

Anh chị kiểm tra và giải quyết giúp.

Cảm ơn.

Similar topics from web:
Flash and VIOLET
Thảo luận Wikipedia:Bàn giúp đỡ/Lưu 1 – Wikipedia tiếng Việt
Cho hỏi: Làm thế nào để lấy dữ liệu từ sheet này qua sheet khác ...
Mẫu phiếu đăng ký dự thi (ĐKDT) Đại học, Cao đẳng năm 2013 ...
Một lần \tranh luận\ với Cảnh sát cơ động
Hỏi đáp liên quan đến : Em muốn hỏi về cách chơi chứng khoán?
Tâm Anh | Tiếng cười của anh là khúc nhạc trong lòng em… | Trang 2
Thắc mắc/Hỏi Yahoo Mesenger không đăng nhập được ...
Dễ dàng dâng “cái ngàn vàng”...
Angela Phương Trinh thấy nhục nhã trước những điều tiếng
\Tiền mất tật mang\ vì tẩy trắng răng- VnExpress Gia Đình
Cô giáo thi viên chức: \Nhiều lúc thấy mình lạc lõng quá ...
Hồ sơ hoàn công? [Lưu Trữ]
Wikipedia:Tin nhắn cho bảo quản viên – Wikipedia tiếng Việt
kinh nghiệm khi gửi hồ sơ ứng tuyển qua Email | Phạm Duy Anh

  • 0

Cánh chim tìm đạo cuối trời............


#2 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 29 April 2013 - 05:51 PM

Nó là 1 tập hợp các đối tượng được nhóm lại thành 1 group *A1 bằng lệnh GROUP.

Muốn sửa cái gì thì sửa thôi. Ví dụ sửa text thì dùng EDIT rồi chọn 1 text cần sửa.


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


#3 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 29 April 2013 - 07:09 PM

Tặng bạn cái Lisp phá hết các đối tượng là Group trong bản vẽ.

(defun C:EG(/ group i kk)
  (setq group (dictsearch (namedobjdict) "ACAD_GROUP") i 1)
  (while (setq kk (nth i group))
    (if  (= (car kk) 3) (entdel (cdr (nth (+ i 1) group))))
    (setq i (+ 1 i)))
  (princ))

  • 2

#4 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 29 April 2013 - 11:11 PM

Có thể lisp của KK đưa lên chưa đúng ý chủ topic nhưng đọc cách sử dụng hàm (namdeobjdict) mình tò mò quá, vì:

1). Viết và mót lisp từ xưa tới giờ mà chưa bao giờ thấy và đụng hàm này.

2). Đọc help và test vẫn chưa hiểu về nó.

Bạn có hiểu cặn kẻ hàm này không thì giải thích giùm với? Hoặc các bác rành về hàm này vậy.

Thanks! Và vote cho 1 lisp hay.


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


#5 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 30 April 2013 - 11:11 AM

Chào bác Hà, Lisp trên hoàn toàn đáp ứng được ý của chủ thớt vì nó sẽ loại bỏ đối tượng được tạo bằng lệnh Group và trả về những đối tượng thông thường (Text, Line...). Từ đây, chủ thớt thoải mái chỉnh sửa bản vẽ theo ý mình không chỉ về nội dungeText mà còn sửa cả Line, Pline, Circle ....

Câu hỏi về hàm namedobjdict, bác đọc phần dưới đây sẽ rõ:

Dictionaries and XRecords

by Stig Madsen

Introduction

Since the dawn of times we've had at least 10 options to save private data with an AutoCAD drawing. Those were and are the system variables USERI1-5 and USERR1-5 that holds integers and real numbers, respectively. The idea is OK but the variables are exposed for everyone to use and you shouldn't assume that your private data will stay intact. Somewhere around release 10 came XData (Extended Entity Data) which is a rather clever invention. With XData you can attach intelligent information to entities, and it works flawlessly. There aren't really drawbacks to the technique, but there are limitations that has to do with the amount and type of data you can attach.

During release 13 new forms of entities hit the deck in order to keep and maintain all sorts of data. Among those were Dictionaries and XRecords. Like XData, Dictionaries can be attached to any kind of entity and you can even attach XData to them. Additionally, with Dictionaries/Xrecords you can tell the drawing itself to keep your data because the drawing maintains a dictionary in which you can save all the data you want.

Dictionaries

So what is a Dictionary and how does it work? Instead of lengthy explanations, it'll be much easier to look at one of the many Dictionaries that AutoCAD itself uses. Later we''ll briefly look at how to make our own simple Dictionary, add an Xrecord to it and save them both with the drawing.

So, fire up AutoCAD and pay attention. As mentioned, the drawing maintains a Dictionary that is always present. This is known as the 'named object dictionary' (although I prefer the term 'main dictionary'). In VBA lingo it's a collection object and like all other collections it just holds a series of other objects. In VBA it is accessed through the document object and in AutoLISP it's accessed by one function only, NAMEDOBJDICT :

Command: (setq mainDict (namedobjdict))
<Entity name: 16a9860>
Command: (entget mainDict)
((-1 . <Entity name: 16a9860>) (0 ."DICTIONARY")
(330 . <Entity name: 0>) (5 . "C") (100 . "AcDbDictionary")
(280 . 0) (281 . 1) (3 . "ACAD_GROUP")(350 . <Entity name: 16a9868>)
(3 . "ACAD_LAYOUT") (350 . <Entity name: 16a98d0>)
(3 . "ACAD_MLINESTYLE") (350 . <Entity name: 16a98b8>)
(3 . "ACAD_PLOTSETTINGS") (350 . <Entity name: 16a98c8>)
(3 . "ACAD_PLOTSTYLENAME") (350 . <Entity name: 16a9870>))

By looking at the entity list of the main Dictionary, the most important thing about Dictionaries becomes clear: they are complete entities by themselves. They are not fragments of data attached to other entities like XData are.

However, the Dictionary itself is not where you will store your raw data, - it is merely a container for other objects that in turn can hold the data. The main dictionary above shows 5 such objects. Its components are given by a unique name in group 3. Corresponding entity names are given by groups 350 that follow, but when referencing an object in a Dictionary it should be done by name only. For example, to reference the "ACAD_MLINESTYLE" object, use DICTSEARCH :

Command: (setq mlineDict (dictsearch (namedobjdict) "ACAD_MLINESTYLE"))
((-1 . <Entity name: 16a98b8>) (0 . "DICTIONARY") (5 . "17")
(102 . "{ACAD_REACTORS") (330 . <Entity name: 16a9860>) (102 . "}")
(330 . <Entity name: 16a9860>) (100 . "AcDbDictionary") (280 . 0)
(281 . 1) (3 . "Standard") (350 . <Entity name: 16a98c0>))

This member of the main Dictionary is a Dictionary itself. It holds all the mline styles that are available. Any style that is created with MLSTYLE is added to the "ACAD_MLINESTYLE" Dictionary. To explore a specific style we have to dig deeper and because we are dealing with Dictionaries we can use DICTSEARCH again - this time by searching the recently returned Dictionary :

Command: (setq mlineStd (dictsearch (cdr (assoc -1 mlineDict)) "Standard"))
((-1 . <Entity name: 16a98c0>) (0 . "MLINESTYLE") (5 . "18")
(102 . "{ACAD_REACTORS") (330 . <Entity name: 16a98b8>) (102 . "}")
(330 . <Entity name: 16a98b8>) (100 . "AcDbMlineStyle") (2 . "STANDARD")
(70 . 0) (3 . "") (62 . 256) (51 . 1.5708) (52 . 1.5708) (71 . 2) (49 . 0.5)
(62 . 256) (6 . "BYLAYER") (49 . -0.5) (62 . 256) (6 . "BYLAYER"))

Now we are getting somewhere! All properties of the mline style "Standard" are exposed in all their glory. Feel free to look up all properties in the DXF Reference. Want to change the color of multilines? Just SUBSTitute group 62 and ENTMOD the style as usual :

Command: (entmod (subst (cons 62 2)(assoc 62 mlineStd) mlineStd))
((-1 . <Entity name: 16a98c0>) …etc… (62 . 2) …etc… (62 . 2) …etc…)

Ok, so a Dictionary is a container that can hold a number of objects. Why not use existing structures like symbol tables instead of complicating things? Many reasons, but two reasons come to mind. Symbol tables are maintained by the people who implemented them and to expand them to hold every possible custom object is not an option. Secondly, Dictionaries can be customized in a way that is not possible with symbol tables, and that opens a range of possibilities only limited by imagination.

Dictionaries and XRecords go hand in hand. Like Dictionaries, XRecords are handled as named objects and can be manipulated by the same functions that handle Dictionaries. In the following, we'll try to add our own Dictionary to the main dictionary. We will also create an XRecord to hold various informations and add it to our Dictionary.

When dealing with Dictionaries, at one point you will have to consider ownership. Which object is going to own the Dictionary? Will it hold generic data for your application or will it hold data that is specific for some entity or entities? In the first case you will probably use the main dictionary to save your data with the drawing. If your application is maintaining data for linetypes, you will probably add an extension dictionary to the linetype symbol table. Whatever the ownership, the Dictionary is initially created without ownership and for that purpose we'll use the function ENTMAKEX. It works like ENTMAKE, but it creates the entity without an owner - and it returns an entity name instead of an entity list. Let's make a function that adds our own Dictionary to the main dictionary. In this example we will name it "OUR_DICT" :

(defun get-or-create-Dict (/ adict)
;;test if "OUR_DICT" is already present in the main dictionary
(if (not (setq adict (dictsearch (namedobjdict) "OUR_DICT")))
;;if not present then create a new one and set the main
;; dictionary as owner

(progn
(setq adict (entmakex '((0 . "DICTIONARY")(100 . "AcDbDictionary"))))
;;if succesfully created, add it to the main dictionary
(if adict (setq adict (dictadd (namedobjdict) "OUR_DICT" adict))))
;;if present then just return its entity name
(setq adict (cdr (assoc -1 adict)))))

If you want to see what happens to the dictionary when added to an owner, then stop the routine right after ENTMAKEX and use ENTGET to investigate the newly created entity. Notice that the owner in group code 330 will not be specified. After using DICTADD the owner in group 330 will be the main dictionary.
Right now we have placed a Dictionary named "OUR_DICT" in the main dictionary. To check if it succeeded we can investigate the main dictionary :

Command: (entget (namedobjdict))
((-1 . <Entity name: 16a9860>) (0 . "DICTIONARY") …etc…
(3 . "ACAD_PLOTSTYLENAME") (350 . <Entity name: 16a9870>)
(3 . "OUR_DICT") (350 . <Entity name: 16a8da0>))

And there it is! But what good does it do us? It just sits there and doesn't hold any data. Well, let's say we want to save data for a routine that creates annotations - for example a text style, a layer name and a text height. Simple stuff, but it'll suffice for the purpose of illustration. With XRecords we can create an entity that can hold any possible data within the range of defined data types. Unlike XData it uses regular group codes to save data. All group codes (except internal data like code 5 and the negative codes) can be used. Of course, the data types that are defined for the specific group codes have to be respected. This means that, for example, a code 70 cannot hold anything else than a 16-bit integer and so on. Code values can be examined in the DXF Reference.


  • 1

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 30 April 2013 - 11:34 AM

Chào bác Hà, Lisp trên hoàn toàn đáp ứng được ý của chủ thớt vì nó sẽ loại bỏ đối tượng được tạo bằng lệnh Group và trả về những đối tượng thông thường (Text, Line...). Từ đây, chủ thớt thoải mái chỉnh sửa bản vẽ theo ý mình không chỉ về nội dungeText mà còn sửa cả Line, Pline, Circle ....

Câu hỏi về hàm namedobjdict, bác đọc phần dưới đây sẽ rõ:

.....

 

Có thể bật tắt Group ON/ OFF bằng tổ hợp phím Ctrol+Shift+A


  • 2

#7 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 30 April 2013 - 11:36 AM

1). Ý chủ TP hỏi nó là đối tượng gì để mà edit chứ chủ TP chưa chắc đã thích dùng bom của KK. Nhưng dù sao thì nổ cũng là 1 cách. OK.

2). Thanks cho thông tin về hàm nameobjdict!

3). Thanks Tue_NV luôn!


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


#8 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 30 April 2013 - 12:25 PM

Cách của bác Tue_NV mới hay. Voted.


  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 30 April 2013 - 10:18 PM

Group On hình như bác Phạmngoctu đề cập lâu lâu rồi nhỉ ^^

 Nếu các bác gán Ctrl + G vào thay đổi biến PickStyle thì sẽ tự làm được một cái shortcut ngon ^^


  • 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