[討論]大家一起來作伙-請問大家對於GROUP都作何使用?
+2
Tiger&蘋果爸
pizg
6 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]大家一起來作伙-請問大家對於GROUP都作何使用?
使用「GROUP」可以將許多物件"群組化",
除了易於被選取之外,
還有其它用處嗎?
我個人是利用GROUP將相關的物件群組化,
讓它們成為一筆筆"規則化"的紀錄,
再透過LISP去統計數量。
除了易於被選取之外,
還有其它用處嗎?
我個人是利用GROUP將相關的物件群組化,
讓它們成為一筆筆"規則化"的紀錄,
再透過LISP去統計數量。
j461548190 likes this post
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
GROUP功能!
在我的工作中很少用!!
比較常用BLOCK~
在我的工作中很少用!!
比較常用BLOCK~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
在舊版時無法修改圖塊比較長使用GROUP功能,在那時候的功能主要類似圖塊的功能,但現在圖塊已經有修改的功能因此工作上現在幾乎沒有在用了
596- 初級會員
- 文章總數 : 39
年齡 : 48
來自 : 台中
職業 : 機械
愛好 : 音樂
個性 : 溫和
使用年資 : 10
使用版本 : 2010
積分 : 2
經驗值 : 5878
威望值 : 9
注冊日期 : 2008-12-15
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
若group可以像block一樣,可以double-click就可進去編輯
那就好用,像sketchup的group與component的方式
那就好用,像sketchup的group與component的方式
urdiafa- 一般會員
- 文章總數 : 19
年齡 : 57
來自 : tainai
職業 : 建築
愛好 : vlisp
個性 : 溫和
使用年資 : 20
使用版本 : 2002
經驗值 : 4944
威望值 : 12
注冊日期 : 2011-08-03
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
GROUP可以運用在程式的資料處理上,
在實際應用時, 程式將相關的圖元用GROUP"綁"成一組,
這在搜尋及編輯特定的圖元時有很大的用處.
在實際應用時, 程式將相關的圖元用GROUP"綁"成一組,
這在搜尋及編輯特定的圖元時有很大的用處.
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
LISP不是很懂......
不過我看別人再寫程式時 幾乎都把它放在除錯處理當程退回的點
所以我就把它搭配UNDO放在退回點的最後一個點 以便程式錯誤的時後留下一些不需要的線條......
有其它的方式我就不知道 也很想了解有沒有什麼其它的方式 會使用到GROUP的
不過我看別人再寫程式時 幾乎都把它放在除錯處理當程退回的點
所以我就把它搭配UNDO放在退回點的最後一個點 以便程式錯誤的時後留下一些不需要的線條......
有其它的方式我就不知道 也很想了解有沒有什麼其它的方式 會使用到GROUP的
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
由AutoCAD 2012 Help:
"A group is a saved set of objects that you can select and edit together or separately as needed. Groups provide an easy way to combine drawing elements that you need to manipulate as a unit. You can create them quickly and with a default name.
Groups are useful in associating 3D solids when you do not want to combine them with a Boolean operation.
You can change the components of groups as you work by adding or removing objects.
In some ways, groups resemble blocks, which provide another method of combining objects into a named set. For example, groups are saved from session to session. However, you can edit individual objects in groups more easily than you can edit them in blocks, which must be exploded first. Unlike blocks, groups cannot be shared with other drawings. "
由ObjectARX Developer's Guide for AutoCAD 2012:
"A group is a container object that maintains an ordered collection of database entities. Groups can be thought of as named persistent selection sets. They do not have an ownership link to the entities they contain.
When an entity is erased, it is automatically removed from the groups that contain it. If an entity is unerased, it is automatically reinserted into the group.
Use the AcDbGroup::newIterator() function to obtain an iterator and step through the entities in the group. The AcDbGroup class also provides functions for appending and prepending entities to the group, inserting entities at a particular index in the group, removing entities, and transferring entities from one position in the group to another. See AcDbGroup in the ObjectARX Reference.
You can also assign properties to all members of a group using the setColor(), setLayer(), setLinetype(), setVisibility(), and setHighlight() functions of the AcDbGroup class. These operations have the same effect as opening each entity in the group and setting its property directly.
..."
由ObjectARX Reference Guide for AutoCAD 2012:
"The AcDbGroup class represents a collection of entities referred to by a single name. All AcDbGroup objects belong to a dictionary object which can be obtained through the AcDbDatabase::getGroupDictionary() method.
Unlike a block, entities within a group can be individually manipulated.
This class contains a dynamic array of object IDs that are the objects in the group.
AcDbGroup plants persistent reactors on its entries when the entries are added to the group.
..."
呼!官方文件的冗長說明讓人看的頭昏眼花.
到底group是什麼?答案就在上述ObjectARX Developer's Guide的第一句:"A group is a container object".是的,group是個可以裝東西(就是autocad的圖元)的容器(container).
假設你的圖面有2條線(藍綠各1條),若你在autocad內建立了一個group物件並將那2條線加入該group中,當你修改藍線為白線時,此時綠線亦同步(自動)修改為白線.
故group的主要用途就如同上述AutoCAD 2012 Help說的:"Groups provide an easy way to combine drawing elements that you need to manipulate as a unit."
當然,除了修改顏色外,autocad賦予group物件很多功能,如搜尋,隱藏,修改圖層,...等(細節請自行查autocad說明).
因此,使用依"不同的需求選取不同的圖元且加入不同的group中並適當利用autocad提供的group功能"所編寫的程式,將可有效提升繪圖效率.
另外,我比較想談的是:
(1)同一group內不同圖元間的同步修改是如何達成的?
(2)若autocad提供的group功能無法滿足我們的需求呢?
就(1)而言,答案就在上述ObjectARX Reference Guide的最後一句:"AcDbGroup plants persistent reactors on its entries when the entries are added to the group."沒錯,就是reactor(反應器).autocad提供多種型式的reactor,如:Entity Reactor,Database Reactor,Editor Reactor,….反應器若用的好,其成效絕對會讓你有驚豔的感受.
同樣以藍綠2條線為例,若我們在藍線施加一個Entity Reactor其對象是綠線且設定該reactor主要是監控修改顏色這個行為,完成這些設置後,當我們修改藍線顏色時綠線亦同步修改.autocad將reactor這種機制內建於group物件,進而達成group內不同圖元間的同步修改.
就(2)而言,既然預設的group不敷使用,那我們就建立進階的group:使用ObjectARX以預設的group為基礎建立Custom Object(自定義物件)(註1,2),它包含預設group的所有功能且加入任何我們想要的功能並搭配適當的reactor.這樣的自定義物件因為是百分百的量身訂做,因此限制最小功能最強.
註1:截至目前的版本(2012版),autocad二次開發能使用的程式語言中: autoLISP/visualLISP,ADS(C),ActiveX(VBA),AutoCAD.NET(VB.NET/C#.NET),ObjectARX(C++) 只有ObjectARX可以做自定義物件.不過入門門檻最高學習曲線最平緩(最慢)但執行速度最快的也是ObjectARX.
註2:在沒有安裝ObjectARX library的電腦開啟含有自定義物件的圖檔,此時autocad會產生proxy object並會在其編輯上造成諸多不便,解決之道就是建立一個Object Enabler(如果你可以做出自定義物件,那麼建立Object Enabler根本不是問題)並安裝在那台電腦上.這和若要看pdf檔你會在你的電腦上安裝acrobat reader是一樣的.
"A group is a saved set of objects that you can select and edit together or separately as needed. Groups provide an easy way to combine drawing elements that you need to manipulate as a unit. You can create them quickly and with a default name.
Groups are useful in associating 3D solids when you do not want to combine them with a Boolean operation.
You can change the components of groups as you work by adding or removing objects.
In some ways, groups resemble blocks, which provide another method of combining objects into a named set. For example, groups are saved from session to session. However, you can edit individual objects in groups more easily than you can edit them in blocks, which must be exploded first. Unlike blocks, groups cannot be shared with other drawings. "
由ObjectARX Developer's Guide for AutoCAD 2012:
"A group is a container object that maintains an ordered collection of database entities. Groups can be thought of as named persistent selection sets. They do not have an ownership link to the entities they contain.
When an entity is erased, it is automatically removed from the groups that contain it. If an entity is unerased, it is automatically reinserted into the group.
Use the AcDbGroup::newIterator() function to obtain an iterator and step through the entities in the group. The AcDbGroup class also provides functions for appending and prepending entities to the group, inserting entities at a particular index in the group, removing entities, and transferring entities from one position in the group to another. See AcDbGroup in the ObjectARX Reference.
You can also assign properties to all members of a group using the setColor(), setLayer(), setLinetype(), setVisibility(), and setHighlight() functions of the AcDbGroup class. These operations have the same effect as opening each entity in the group and setting its property directly.
..."
由ObjectARX Reference Guide for AutoCAD 2012:
"The AcDbGroup class represents a collection of entities referred to by a single name. All AcDbGroup objects belong to a dictionary object which can be obtained through the AcDbDatabase::getGroupDictionary() method.
Unlike a block, entities within a group can be individually manipulated.
This class contains a dynamic array of object IDs that are the objects in the group.
AcDbGroup plants persistent reactors on its entries when the entries are added to the group.
..."
呼!官方文件的冗長說明讓人看的頭昏眼花.
到底group是什麼?答案就在上述ObjectARX Developer's Guide的第一句:"A group is a container object".是的,group是個可以裝東西(就是autocad的圖元)的容器(container).
假設你的圖面有2條線(藍綠各1條),若你在autocad內建立了一個group物件並將那2條線加入該group中,當你修改藍線為白線時,此時綠線亦同步(自動)修改為白線.
故group的主要用途就如同上述AutoCAD 2012 Help說的:"Groups provide an easy way to combine drawing elements that you need to manipulate as a unit."
當然,除了修改顏色外,autocad賦予group物件很多功能,如搜尋,隱藏,修改圖層,...等(細節請自行查autocad說明).
因此,使用依"不同的需求選取不同的圖元且加入不同的group中並適當利用autocad提供的group功能"所編寫的程式,將可有效提升繪圖效率.
另外,我比較想談的是:
(1)同一group內不同圖元間的同步修改是如何達成的?
(2)若autocad提供的group功能無法滿足我們的需求呢?
就(1)而言,答案就在上述ObjectARX Reference Guide的最後一句:"AcDbGroup plants persistent reactors on its entries when the entries are added to the group."沒錯,就是reactor(反應器).autocad提供多種型式的reactor,如:Entity Reactor,Database Reactor,Editor Reactor,….反應器若用的好,其成效絕對會讓你有驚豔的感受.
同樣以藍綠2條線為例,若我們在藍線施加一個Entity Reactor其對象是綠線且設定該reactor主要是監控修改顏色這個行為,完成這些設置後,當我們修改藍線顏色時綠線亦同步修改.autocad將reactor這種機制內建於group物件,進而達成group內不同圖元間的同步修改.
就(2)而言,既然預設的group不敷使用,那我們就建立進階的group:使用ObjectARX以預設的group為基礎建立Custom Object(自定義物件)(註1,2),它包含預設group的所有功能且加入任何我們想要的功能並搭配適當的reactor.這樣的自定義物件因為是百分百的量身訂做,因此限制最小功能最強.
註1:截至目前的版本(2012版),autocad二次開發能使用的程式語言中: autoLISP/visualLISP,ADS(C),ActiveX(VBA),AutoCAD.NET(VB.NET/C#.NET),ObjectARX(C++) 只有ObjectARX可以做自定義物件.不過入門門檻最高學習曲線最平緩(最慢)但執行速度最快的也是ObjectARX.
註2:在沒有安裝ObjectARX library的電腦開啟含有自定義物件的圖檔,此時autocad會產生proxy object並會在其編輯上造成諸多不便,解決之道就是建立一個Object Enabler(如果你可以做出自定義物件,那麼建立Object Enabler根本不是問題)並安裝在那台電腦上.這和若要看pdf檔你會在你的電腦上安裝acrobat reader是一樣的.
nobody- 初級會員
- 文章總數 : 32
年齡 : 49
來自 : 台北
職業 : 待業
愛好 : 電腦繪圖
個性 : 開朗
使用年資 : 新手初學
使用版本 : 新手初學
積分 : 3
經驗值 : 5175
威望值 : 116
回帖精華 : 1
注冊日期 : 2011-06-07
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
nobody的這篇貼文很棒!
1.誠如官方文件所說, GROUP可以將毫無關係的許多物件"綁"在一起,讓它們彼此之間有一層關係存在, 如此可以讓程式去搜尋、編輯.
至於使用者要如何用它, 不同的處理目的會有不同的做法和程式的寫法.
以實際應用來說,大多數人都用圖塊屬性來作為統計數量的來源物, 我認為這樣不夠彈性, 它不足以承載各式各樣的數據統計工作, 因此本人是利用GROUP+XDATA.
2.要讓在GROUP內的物件被編輯時同步作用, 這必須區分成兩個層次來討論.
GROUP是讓物件與物件之間產生關系, 它的功用僅在於"產生關係", 若要讓GROUP內的物件同步, 則是必須使用反應器,反應器可以憑藉群組這樣的關係去尋找到並變更GROUP內的其它物件屬性,來達到同步的作用.
官方文件在文中提到"可以讓物件同步"只是舉例, 而使用者可以發揮更多的想像力應用在其它方面.
3.使用者若能自定義物件, 再搭配GROUP就再好不過了, 如此在搜尋及編輯物件時更能提高不少效率.
假設使用者自定義了一種叫"SLINE"的物件,若要搜尋圖面裏的"SLINE"物件,則可以下達如下陳述式
(ssget '((0 . "SLINE")))
1.誠如官方文件所說, GROUP可以將毫無關係的許多物件"綁"在一起,讓它們彼此之間有一層關係存在, 如此可以讓程式去搜尋、編輯.
至於使用者要如何用它, 不同的處理目的會有不同的做法和程式的寫法.
以實際應用來說,大多數人都用圖塊屬性來作為統計數量的來源物, 我認為這樣不夠彈性, 它不足以承載各式各樣的數據統計工作, 因此本人是利用GROUP+XDATA.
2.要讓在GROUP內的物件被編輯時同步作用, 這必須區分成兩個層次來討論.
GROUP是讓物件與物件之間產生關系, 它的功用僅在於"產生關係", 若要讓GROUP內的物件同步, 則是必須使用反應器,反應器可以憑藉群組這樣的關係去尋找到並變更GROUP內的其它物件屬性,來達到同步的作用.
官方文件在文中提到"可以讓物件同步"只是舉例, 而使用者可以發揮更多的想像力應用在其它方面.
3.使用者若能自定義物件, 再搭配GROUP就再好不過了, 如此在搜尋及編輯物件時更能提高不少效率.
假設使用者自定義了一種叫"SLINE"的物件,若要搜尋圖面裏的"SLINE"物件,則可以下達如下陳述式
(ssget '((0 . "SLINE")))
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
原來GROUP還有這麼深層的用法...學習了~
謝謝分享~
謝謝分享~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
group+xdata 在建築平面門窗上.xdata附尺寸資料,再做門窗自動編號,可行嗎?
但group修改實在太不方便,
但group修改實在太不方便,
urdiafa- 一般會員
- 文章總數 : 19
年齡 : 57
來自 : tainai
職業 : 建築
愛好 : vlisp
個性 : 溫和
使用年資 : 20
使用版本 : 2002
經驗值 : 4944
威望值 : 12
注冊日期 : 2011-08-03
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
這是可行的, 而且修改group也不會不方便.urdiafa 寫到:group+xdata 在建築平面門窗上.xdata附尺寸資料,再做門窗自動編號,可行嗎?
但group修改實在太不方便,
網路上有很多編修group的程式,你可以搜尋一下.
另外,在這裏給你一個提示,
除了加上xdata之外,
你也可以自行加註文字資料, 其中包括欄位屬性和值,
這就類似於block的屬性.
至於是不是要繪出這些文字, 你可以將它們放在適當的圖層裏.
我看了一下你使用的AutoCAD版本是2002,
在這裏我要特別說明一下,
AutoCAD新版本裏group的特性會有些不同,
你可以試一下新的版本.
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
group修改--分組--再重組,動作太多,可有分組後修改,再自動組合的程式?
block是refedit修改後,不必再重新做block,靠程式一個選取動作就可形成
一個匿名block,有缺點是在2002,refedit做太多次,某些機器autocad會當掉
xdata是可以加資料,但是要可做何事?做估算用?元體加xdata,只有少部份
或許好控制,如太多會不會亂掉?就如layer的設定,有用10個layer就夠了,
看別人圖一堆layer,元體亂跑,亂掉,layer或xdata就無意義
block是refedit修改後,不必再重新做block,靠程式一個選取動作就可形成
一個匿名block,有缺點是在2002,refedit做太多次,某些機器autocad會當掉
xdata是可以加資料,但是要可做何事?做估算用?元體加xdata,只有少部份
或許好控制,如太多會不會亂掉?就如layer的設定,有用10個layer就夠了,
看別人圖一堆layer,元體亂跑,亂掉,layer或xdata就無意義
urdiafa- 一般會員
- 文章總數 : 19
年齡 : 57
來自 : tainai
職業 : 建築
愛好 : vlisp
個性 : 溫和
使用年資 : 20
使用版本 : 2002
經驗值 : 4944
威望值 : 12
注冊日期 : 2011-08-03
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
由ObjectARX Developer's Guide for AutoCAD 2012:urdiafa 寫到:xdata是可以加資料,但是要可做何事?做估算用?元體加xdata,只有少部份
或許好控制,如太多會不會亂掉?
"Extended data (xdata) are text strings, numeric values, 3D points, distances, layer names, or other data attached to an object.
Extended data is created by applications written with ObjectARX or AutoLISP and can be added to any object. Xdata consists of a linked list of resbufs used by the application. (AutoCAD maintains the information but doesn't use it.) The data is associated with a DXF group code in the range of 1000 to 1071.
This mechanism is space-efficient and can be useful for adding lightweight data to an object. However, xdata is limited to 16K and to the existing set of DXF group codes and types.
..."
從第一句可知: xdata可以存放多種型式的資料(主要是用來對autocad的圖元作說明及註解,細節請查AutoCAD 2012 Help->DXF Reference->Advanced DXF Issues->Extended Data). 從第三句可知: autocad限制xdata不得大於16K(第二句告訴我們xdata是由程式建立的,若你的xdata大於16K則autocad會警告程式發生錯誤且xdata建立失敗).至於16K有多大?你可以用記事本(notepad)建立一個文字檔看看16K可存多少個字.不過若只是存放建築平面門窗尺寸資料那是足夠的.
我想談的不是在那裡可以找到編修group的程式而是效率.假設有10條線要分成2組:第一組4條,第二組6條.若使用group來處理(註1): group1記錄其中4條線的id, group2記錄其他6條線的id.若使用block來處理(註1): block1須先找出一個未被當前圖面的所有autocad圖元使用的id(id1)再將其中4條線的id改為id1,同樣的工作block2再做一次(找出id2)並將其他6條線的id改為id2.由此可知使用group對autocad所施加的工作量是會比使用block來得小.我想這應該也是pizg在前面說的”用圖塊屬性來作為統計數量的來源物,我認為這樣不夠彈性”所要表達之意.urdiafa 寫到:group修改--分組--再重組,動作太多,可有分組後修改,再自動組合的程式?
block是refedit修改後,不必再重新做block,靠程式一個選取動作就可形成
一個匿名block,有缺點是在2002,refedit做太多次,某些機器autocad會當掉
關於門窗自動編號,我以2種情況來說明:urdiafa 寫到:group+xdata 在建築平面門窗上.xdata附尺寸資料,再做門窗自動編號,可行嗎?
(1)圖面已建立門窗:(一般用法)
假設這些門窗共屬於2種類型:第一類及第二類.
a.建立每個門窗之xdata (附尺寸資料:門窗寬,門窗高).
b.將所有門窗加入group中,並利用group之搜尋功能依序讀取每個門窗之尺寸資料,藉由比對每筆尺寸資料進而完成門窗編號,如:第一類編號為W1,第二類編號為W2.其實在步驟a也可以直接將門窗編號寫入xdata那麼在本步驟就不用做比對的動作.另外你也可依你的需求來決定是否要依門窗類別將group分成2個:將group改名為group1->建立group2->取出group1內編號為W2之門窗並置入 group2內.這些動作皆可利用autocad所賦予group之功能來完成.
c.分類做好編號也已完成,最後要做的是將編號在圖面中顯示出來.以第一類為例,最簡單的方式就是建立一個W1的文字物件,其缺點是該門窗物件與W1文字物件為2個獨立物件(這在一般的建築平面圖最常見).至於如何將這2個物件綁成1個物件就留給你去思考一下.(剛好可以把autocad help再看一看)
步驟a~c看起來似乎”漏漏長”,其實用程式來跑只是幾秒鐘的事情而已.
(2)圖面未建立門窗: (進階用法)
a.在autocad內建立第一個門窗(你可能是用手動繪製或用外掛程式來建立)並告訴autocad這是個門窗物件.
b.對當前圖面施加一個Database Reactor(註2),這個反應器可以讓你監控整個autocad圖面,只要有新的門窗物件被建立,反應器就會立即對這個新建立的物件有所動作.(你可以把情況(1)的動作加入反應器內,亦可加入任何你想要的動作).
情況(2)的用法較情況(1)更有效率功能也更強,不過要寫出這樣的程式其難度相對也是比較高的.
註1:這個部份關係到autocad是如何管理它的資料庫(database),因此不在本討論範圍內,不過若能了解它,我想1/3的autocad應該已在你的掌握之中(記得以前曾看過一篇文章,有人用autoLISP, VBA , ObjectARX在autocad內畫很多的圖元來比較三者之速度(三者畫的圖元數目相同)(當時autodesk尚未推出AutoCAD.NET),他測的結果是ObjectARX約為VBA的8~10倍,而VBA約為autoLISP的10~12倍.這個結果或許不夠客觀(記憶中作者有提到是因為程式的優化程度不同,其他原因記不起來了),不過卻告訴我們: ObjectARX因為能藉由與autocad執行時所使用之記憶體直接溝通進而管理/修改autocad的資料庫,因此它的速度最快).
註2:如同我在前面說的:”反應器若用的好,其成效絕對會讓你有驚豔的感受.” 到目前為止我們談過Entity Reactor及Database Reactor,這裡再提一個:Editor Reactor.這個反應器讓autocad監控每個你要開啟/關閉的圖檔.以開啟圖檔為例,常常會有出現替換字型視窗的困擾,解決方法除了手動一個一個按(次數一多你可能會受不了)及使用字型對應檔(用過的人應該都有一個想法:為什麼永遠有對應不完的字型)外,到底有沒有方式能讓找不到的字型自動選擇(完全不用按任何的按鍵或滑鼠的左右鍵)成其他的字型(如chineset)呢?答案是:有.不過這牽涉到的層面除了autocad相關的技術外還包含其他的(非autocad),我想這應該不適合在這裡討論.但是整個技術的起點就從使用Editor Reactor監控autocad開啟圖檔的過程開始.
nobody- 初級會員
- 文章總數 : 32
年齡 : 49
來自 : 台北
職業 : 待業
愛好 : 電腦繪圖
個性 : 開朗
使用年資 : 新手初學
使用版本 : 新手初學
積分 : 3
經驗值 : 5175
威望值 : 116
回帖精華 : 1
注冊日期 : 2011-06-07
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
1.group對autocad所施加的工作量是會比使用block來得小
我想現在硬體條件很好,一般圖檔可以跑的動,我比較在意是如何有效率
別人一小時完成的圖,我可以半小時就完成
2.門窗自動編號
我是指在畫平面時,如輸入門窗平面尺寸如160cm,資料就在門窗平面元體裡面
給一個自動編號指令時,會讀取尺寸資料-->按尺寸自動排序編號-->再把門窗文字編號寫在平面門窗上頭
這過程不必再花時間去整理門窗尺寸,其實下一步的過程,可以再加門窗高度與型式xdata,讓它自動畫出門窗大樣
3.Editor Reactor
這是好構想,可以自動替換找不到字型,lisp是可以處理,讓它自動替代,但用reactor,我不懂,我也一直看不到好用reactor程式,
4.反應器若用的好,其成效絕對會讓你有驚豔的感受
我希望不只是驚豔的感受,而且要能實用,看過用面積文字與pline的reactor
但是現在改圖次數太多,你的pline每次都要重做,reactor就斷掉,這是我對reactor的感受,不曉得對不對?
我不是很專業程式寫作,我不懂objectarx,新版的autocad,有些不大懂,尤其cui,我會vlisp,vlisp讓我省掉很多時間,我的想法,是一個畫圖過程,要10個動作
我可以在3,4個動作就完成,尤其現在的工作環境,太會改圖,效率實用是我用vlisp的原因
我想現在硬體條件很好,一般圖檔可以跑的動,我比較在意是如何有效率
別人一小時完成的圖,我可以半小時就完成
2.門窗自動編號
我是指在畫平面時,如輸入門窗平面尺寸如160cm,資料就在門窗平面元體裡面
給一個自動編號指令時,會讀取尺寸資料-->按尺寸自動排序編號-->再把門窗文字編號寫在平面門窗上頭
這過程不必再花時間去整理門窗尺寸,其實下一步的過程,可以再加門窗高度與型式xdata,讓它自動畫出門窗大樣
3.Editor Reactor
這是好構想,可以自動替換找不到字型,lisp是可以處理,讓它自動替代,但用reactor,我不懂,我也一直看不到好用reactor程式,
4.反應器若用的好,其成效絕對會讓你有驚豔的感受
我希望不只是驚豔的感受,而且要能實用,看過用面積文字與pline的reactor
但是現在改圖次數太多,你的pline每次都要重做,reactor就斷掉,這是我對reactor的感受,不曉得對不對?
我不是很專業程式寫作,我不懂objectarx,新版的autocad,有些不大懂,尤其cui,我會vlisp,vlisp讓我省掉很多時間,我的想法,是一個畫圖過程,要10個動作
我可以在3,4個動作就完成,尤其現在的工作環境,太會改圖,效率實用是我用vlisp的原因
urdiafa- 一般會員
- 文章總數 : 19
年齡 : 57
來自 : tainai
職業 : 建築
愛好 : vlisp
個性 : 溫和
使用年資 : 20
使用版本 : 2002
經驗值 : 4944
威望值 : 12
注冊日期 : 2011-08-03
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
看來你已經有程式可以畫出門窗物件及文字編號物件.至於”再加門窗高度與型式xdata,讓它自動畫出門窗大樣”,我倒是建議除了門窗高度與型式外其實你也可以考慮(1)將相同型式門窗加入同一個group及(2)再加入門窗離地(窗台)高度.urdiafa 寫到:
2.門窗自動編號
我是指在畫平面時,如輸入門窗平面尺寸如160cm,資料就在門窗平面元體裡面
給一個自動編號指令時,會讀取尺寸資料-->按尺寸自動排序編號-->再把門窗文字編號寫在平面門窗上頭
這過程不必再花時間去整理門窗尺寸,其實下一步的過程,可以再加門窗高度與型式xdata,讓它自動畫出門窗大樣
理由(1):在同一個group內要作數量估算是很快的,另外既然改圖次數太多,那就有可能會改到門窗,利用group加reactor(註),相同型式門窗只要改一個其他的就讓autocad幫你同步修改.這應該會比你改一個門窗後,刪除其他的門窗,再把改過的門窗一個一個複製過去來得快.
理由(2):考慮窗台高度是為了能將建築平面轉成3D的諸多準備工作中之其中一項,這個部份應該不是你目前的目標,所以我們先不詳談.不過我倒是可以稍微提一個和你應該有直接相關的領域:建築結構.之前有位從事建築結構設計的好朋友和我在談如何增進他的工作效率,基於純義務幫忙之因素並經過在我和他之間來來回回好幾次溝通後,作出了一支程式(以5層樓RC建築物為例,因為5層樓所以含屋頂共6個建築平面):於1F平面圖用滑鼠點選柱子一次及點選牆線一次->程式將各樓層之柱子及牆轉成3D物件->在螢幕上以拖曳方式將各樓層疊在一起使整棟建築物以3D方式呈現->依他的作圖習慣由程式建立樑的3D物件->產生相關資料檔作為他所使用的結構軟體的input data以便他進行相關的結構分析設計. 這支程式他使用後的心得是雖然還是有進步的空間但是很直覺,因為是直接在autocad作圖,而不用像以前須一邊看建築平面圖一邊把看到的輸入至結構軟體來建模,而這個很直覺所帶來的好處就是工作效率明顯的增進.最後他甚至還建議把一些較簡單的結構分析功能加入程式中,這個想法一直佔據在我的腦海中,或許值得一試也說不定.
請問”lisp是可以處理,讓它自動替代”是指urdiafa 寫到:
3.Editor Reactor
這是好構想,可以自動替換找不到字型,lisp是可以處理,讓它自動替代,但用reactor,我不懂,我也一直看不到好用reactor程式,
a).開啟圖檔時,出現替換字型視窗,此時你可以用lisp在字型視窗內選擇其他字型
或
b).圖檔圖已完全開啟(不管你用什麼方式去處理替換字型視窗),此時你才用lisp去替換該張圖所使用的字型
如果答案是a,我認為不可能(如果我錯了,請糾正我,拜託,謝謝). autocad開啟圖檔過程大約是:(1)先作初始化的工作->(2)讀取圖檔->(3)根據圖檔資料作相關設定及載入相關外掛程式->(4)顯示在螢幕上.在初始化及作相關設定這2個步驟都是autocad為了開啟這張圖檔因此在它的資料庫裏所作的準備動作.若圖檔含有autocad無法辨識的字型,在讀取過程中字型視窗就會出現,此時外掛程式尚未載入,因此我才會說不可能.
請問”pline每次都要重做”是指urdiafa 寫到:
4.反應器若用的好,其成效絕對會讓你有驚豔的感受
我希望不只是驚豔的感受,而且要能實用,看過用面積文字與pline的reactor
但是現在改圖次數太多,你的pline每次都要重做,reactor就斷掉,這是我對reactor的感受,不曉得對不對?
a)先delete該pline然後再新建pline
或
b)不delete該pline而直接修改它
如果答案是a,因為你的reactor是施加在原來的pline,當它被delete圖面上就看不到它,因此它是無法操作的(亦即不動的).既然是不動的,reactor當然就沒有反應 (斷掉).解決之道是為新建的pline重新施加reactor.而改圖次數太多將導致重新施加reactor這個動作成為一場惡夢,因此你應該找(或寫)出一支程式來幫你做自動施加reactor這個動作.(其實在autocad內當你delete一個圖元, autocad並未真的將該圖元從資料庫裏刪除,而是把它隱藏起來,當你關閉圖檔時, autocad才將該圖元從資料庫裏刪除)
如果答案是b,我的經驗告訴我,你用的pline reactor程式應該有考慮不夠周詳的情況(不見得是bug),不過沒看到原始碼(source code)或實際操作過程實在是不知道程式作者是那裡沒注意到或是有作了什麼限制.
註:
其實reactor沒有你想的那麼難,你只是沒接觸過它所以對它很陌生,但是我認為你會vlisp已經有很好的基礎,持續下去我相信你會越來越得心應手.若不想用它,你也可以用vlisp寫出符合你的需求的程式,畢竟你覺的好用才是最重要的.
以下為autodesk官方的討論群組,希望對你能有所幫助(或許你早已知道它,而我會把它提出來主要是因為在那裡你常常可以看到autodesk官方的開發人員在回答大家所提的問題,這點在別的網站是看不到的,另外,比較不方便的是它都是英文的):
http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/bd-p/130
nobody- 初級會員
- 文章總數 : 32
年齡 : 49
來自 : 台北
職業 : 待業
愛好 : 電腦繪圖
個性 : 開朗
使用年資 : 新手初學
使用版本 : 新手初學
積分 : 3
經驗值 : 5175
威望值 : 116
回帖精華 : 1
注冊日期 : 2011-06-07
回復: [討論]大家一起來作伙-請問大家對於GROUP都作何使用?
剛在學很多還不懂 部份看不懂 不過好精彩 受益良多 對lisp觀念上還有很多待加強 雖然我很想看nobody所貼的網址 可惜我的英文爛的可以...在閱讀上挫折感很大
還好有很多願意分享的前輩在這邊 我們才能夠一直精進...
還好有很多願意分享的前輩在這邊 我們才能夠一直精進...
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章