2016年11月10日 星期四

[Creo Skill] Pattern Relation #1

Pattern Relation是一種進階的技巧,主要是運用在不等距的Pattern陣列中;
而通常 Pattern Relation 在一維的尺寸控制是不困難的,難的是二維的尺寸控制怎麼作?


Pattern Relation

1) Definition:

/=====================================================/
memb_v - relation driven resultant dimension in this specific direction
memb_i - relation driven increment in this specific direction
lead_v - leader value (dimension selected to determine direction)
idx1   - pattern instance index in the first direction
idx2   - pattern instance index in the second direction
 DO NOT USE memb_v AND memb_i IN THE SAME RELATION
/=====================================================/


2) Concept:





3) Example








4) Relation code

4-1) Relation of  the first direction   =>It's very easy. Think  of...yourself

4-2)  The second direction => Refer to below




5) Extension, How to write the Relation code ?






2016年11月9日 星期三

[Creo API] Compiler and platform support information

Information for Pro/ENGINEER Wildfire TOOLKIT, Creo Elements/Pro TOOLKIT, Creo Parametric TOOLKIT and VB API.

/=====================================================/
Compiler and platform support
發佈者: fengsw2008 文檔分類: Java 文檔格式: DOC
出處:PTC CS Support => Document - CS44547
/=====================================================/




2016年11月8日 星期二

[Creo Skill] Pro/Program

這篇文章在網路上找到的,覺得寫得不錯可以對Pro/Program使用有深入的瞭解,
將該文章原封不動的引用過來分享。發佈者、出處如下

This article found on the Internet, I feel well written on the Pro/Program.
Share this article. Publisher, as follows

/=====================================================/
program使用
發佈者: fengsw2008 文檔分類: Java 文檔格式: DOC
出處:http://itdocument.com/679154161/
/=====================================================/


PROE/PROGRAM 其實是一門很簡單的程序設計語言。這門語言的基本詞語總共就只有 11
個:Input……End Input、Relations……End Relations、Add……End Add、Execute……End
Execute、If……End If、Massprop……End Massprop、Lookup_inst、Suppressed、Modify、Choose、
Interact。所有的一切,都是這裡11 個詞組合出來。
PROE/PROGRAM 的入口,在 2001 裡是「菜單管理器」—>」程序」.」程序」,在 WF 裡是」工
具」PART(或Assembly)
我們先看一下一般的程序都是什麼樣子:
AD1(零件的)



AD2(組件的)

兩圖上可看到, 程序可分成幾個部份, 第一部份是版本與文件信息. 第二部份是一個
Input……End Input 語句.第三部份是一個Relations……End Relations 語句.第四部份是若干個
Add……End Add 語句.第五部份是一個Massprop……End Massprop 語句.
第一部份不用管它,系統自動生成的.第二部份就是設置變量的地方.第三部份就是設置關係
式的地方.第四部份是管理所有的特徵及零件的地方.第五部份是設置質量屬性的地方.我們
用PROGRAM的重點,就在第二/三/四這三塊.
下面我先一個個說說這 11 個詞都什麼意思及如何使用.基本上兄弟們理解了它們的用法,也
就自然而然理解了程序的設計與修改了




第一個,IF……End If
這個就是各種編程語言裡都有的大名鼎鼎的條件語句了.實際上它是:
IF 條件1
……(執行語句段1)
Else
……(執行語句段2)
End If.
其含義是:如果滿足條件 1,則執行第一段的各種語句,否則,執行第二段的各種語句.Else 和第
二段是可以沒有的,但End If 是不可少的,且一個IF 對應一個End IF,其數量是相等的.IF 語句
是一個邏輯語句,使用它的目的就是實現分支設計.單獨使用是沒有意義的,它必須和其它的
語句一起使用(也就是必須有執行語句段----至少有一句).它本身可以嵌套,因此也就可以實現
多重條件的組合運用.



第二個,Input……End Input.
Input……End Input 是一個複合詞,它實際上是一個程序段,這個程序段以Input 為第一行,以
End Input 為最後一行,中間的就是我們這個程序中需要人工輸入的變量和變量類型以及相
關提示信息.程序每次再生的時候,系統會提示我們輸入這個做裡列出的每一個變量的新值.



典型的Input 段如下:
Input
A Number
B
C String
D Yes-No
EndInput
這裡有幾點要記住:
A.所有的變量都要以字母開頭.
B.變量的類型有三種:Number,String,Yes-NO.Number 就是實數型,其值是任意一個實
數,String 就是字符型,取值是任意一個字符串,Yes-No 就是布爾型,也就是取值為 YES 或 NO
之一.
C.如果設置時不指定變量類型(像上面的那個B),則系統當它是實數型.
D.當提示輸入時我們不輸入新值,則各個變量系統會取當前值,如是第一次運行時也不輸入,
則系統將實數型變量取值為0,布爾型變量取值為NO,字符串型變量取值為空.



在Input 段中可使用IF……Else……End If,以實現選擇性輸入.
在Input 段中也可為輸入變量加提示,加提示要注意:
A.提示信息必須包含在引號裡
B.提示信息必須緊跟在相應的輸入變量之後.
示例:
Input
Hole Yes-No
「請確認有無工藝孔:」
If Hole==Yes
Hole_Dia Number
「請輸入孔直徑:」
Hole_Num Number
「請輸入孔數:」
Endif
……
End Input
(以上,先確認有無孔,如果有孔,再輸入孔數與直徑,如果無孔,則不用輸入孔數與直徑)


第三個,Relations……End Relations
這個詞也是一個語句段,第一行是Relations,最後一行是End 」關係」裡編輯.如果一行關係式太
長( 最長 80 個字符一行), 可以在行尾寫一個反斜槓(\), 然後接著在下一行寫. 示例如
下:Relations,中間是零件/組件中需要用到的各種關係式.在零件/組件中加入的各種關係式
都放在這裡(不含草圖關係式及陣列關係式).在編程時也可直接在這裡增加關係,所有在這裡
的關係,都可以在」特徵」-



Relations
A=」Part0007」
B=20.0
C=d5*5/d2
D=cos(d6)
End Relations
註:眾所周知,Relations 語句段中,也可使用IF 語句.



第四個,Add……End Add
它又可細分為三種:Add Feature 特徵名……End Add,Add Part 零件名……End Add,Add
Subassembly 子組件名……End Add.它們也是語句段,第一行是Add Feature(Part/Subassembly)
特徵名(零件名/子組件名),最後一行是End Add,中間是特徵(零件/子組件)的具體信息,這些具
體信息一般來說不用去管它.因為沒有能讓我們編輯的東西.
這個語句可與IF 和Suppressed 聯用,以控制特徵(零件/子組件)的顯示與隱含.
對於特徵,這個語句段裡列出了特徵的主要參數,如尺寸/拉伸深度等,但是,要記住的是,直接在
這裡改這些參數是沒用的!!!
這裡的特徵名/零件名/子組件名,可以是字符型變量。如果是字符型變量的話,要用括號括
起來,示例:
Add Part (PartName)




第五個,Execute……End Execute

這個語句只用於組件中.它的作用是從組件向零件傳遞參數,以通過組件中的某些參數去控制
構成組件的零件(的形狀/尺寸……).它也是個語句段,第一行是 Execute,最後一行是 End
Execute,中間的每一行是一個賦值語句.典型的結構如下:
Execute
Part 變量名1=ASM變量名1
Part 變量名2=ASM變量名2
……
End Execute
通常,在組件中的Input 段和零件中的Input 段,都設置相同的變量名,代表同一個參數.(這是為
了方便,當然也可以不同,只不過不同的話就要小心點,以免搞錯).然後將零件裝配到組件中,
再編輯程序,在對應的Add Part……End Add 語句段前增加一個Execute 語句段.這樣,再生時,
給變量輸入新值,part 的形狀或尺寸就可以自動按要求變化.





第六個,Lookup_inst

這個實際上是PROE 裡的一個函數.它的取值是一個字符串,用於找出族表中符合指定條件的
特定實例的名字.具體的語法如下:
Lookup_inst(「Name」,matchmode,Valuename1,Value1,Valuename2,Value2……)
Name: 含 有 族 表 的 模 型 的 名 字 , 它 必 須 帶 後 綴 , 也 就 是 , 必 須 寫 成
如」PRT0002.prt」,」ASM0007.asm」這樣,否則,不能得出正確結果.
Matchmode:設置查找原則,取值為-1,0,1.」-1」表示查找小於等於給定值且最接近給定值的實
例,」0」表示查找等於給定值的實例,」1」表示查找大於等於給定值且最接近給定值的實例.
Valuename1/2/3...:是族表參數名,基本上也就是族表中各列的第一行那個東東.
Value1/2/3…:是用來匹配的值
示例: 零件 Part27.prt 中, 族表按尺寸 d0=50,70,90 給了三個實例, 實例名分別為
Part27-1,Part27-2,Part27-3.那麼:
Lookup_inst(「Part27.prt」,0,」d0」,50)=Part27-1
Lookup_inst(「Part27.prt」,0,」d0」,70)=Part27-2
Lookup_inst(「Part27.prt」,0,」d0」,90)=Part27-3
Lookup_inst(「Part27.prt」,-1,」d0」,60)=Part27-1
Lookup_inst(「Part27.prt」,1,」d0」,60)=Part27-2
Lookup_inst(「Part27.prt」,1,」d0」,10)=Part27-1
注意:以上的」Part27.prt」如果寫成」Part27」的話,是得不出結果的.



第七個,Suppressed
這個就是一個詞,即」壓縮」/」隱含」.它的作用跟它的詞義一樣,用於把一個特徵/零件/子組件隱
含起來,效果與在模型樹裡點右鍵用」隱含」相同.它不能單獨用,必須與Add……End Add 語句
一起使用.當想隱含哪個特徵/零件/子組件時,只要在它對應的 Add……End Add 語句的第一
行的Add 後加上Suppressed,再生之後它就不見了.
要注意的是,因為它的效果是」隱含」不是」隱藏」,所以用的時候要注意了,如果Suppressed 了父
親而不Suppressed 兒子的話,再生就要報錯的.
Suppressed 一個組或陣列中的一個子特徵,必須將所有子特徵全部 Suppressed,對於組,因組標
識在程序裡還有個單獨的Add……End Add 語句,它也要Suppressed,否則報錯.
但如果在 Config 裡加一個設置:del_gp_memb_ind=yes, 則組的各個子特徵可以單獨
Suppressed.
Suppressed 之後要恢復,可直接在模型樹裡「恢復」,也可在程序裡將Suppressed 去掉。



GOOGLE TRANSLATE
/=====================================================/
PROE / PROGRAM is actually a very simple programming language. The total number of words in this language is only 11
: Input ... End Input, Relations ... End Relations, Add ... End Add, Execute ... End
Execute, If ... End If, Massprop ...... End Massprop, Lookup_inst, Suppressed, Modify, Choose,
Interact. All in all, here are 11 combinations of words out.
PROE / PROGRAM entry, in 2001 is the "menu manager" -> "program." "Program", in the WF is the "work
PART (or Assembly)
We look at what the general procedures are like:
AD1 (of the part)



AD2 (component)

As can be seen on both figures, the program can be divided into several parts, the first part is the version and file information. The second part is a
Input ... End Input statement. The third part is a Relations ... ... End Relations statement. The fourth part is a number
Add ...... End Add statement. The fifth part is a Massprop ... End Massprop statement.
The first part of it without regard to it, the system automatically generated.The second part is to set the variable place.The third part is to set the relationship
The fourth part is to manage all the features and parts of the place.The fifth part is to set the quality attributes of the place.
With the PROGRAM focus, in the second / three / four of these three.
Now I first talk about these 11 words are what meaning and how to use. Basically, the brothers understand their usage, also
It is natural to understand the program design and modification




First, IF ... End If
This is a variety of programming languages ​​have a well-known conditions of the statement. In fact it is:
IF Condition 1
... (Execute statement 1)
Else
... (Execute statement segment 2)
End If.
The meaning is: If the conditions 1, the implementation of the first paragraph of the various statements, otherwise, the implementation of the second paragraph of the various statements. Else and the first
Two paragraphs can not, but End If is essential, and an IF corresponding to an End IF, the number is equal.
Is a logical statement, the use of its purpose is to achieve branch design.Individual use is meaningless, it must and other
Statements (that is, there must be at least one sentence of execution statements), which itself can be nested, and thus can be implemented
Multiple conditions of the combination of use.



Second, Input ... End Input.
Input ... ... End Input is a compound word, it is actually a program segment, the program segment to Input for the first line to
End Input for the last line, the middle of this process is that we need to manually input variables and variable types and phase
Off prompt information. Each time the program is regenerated, the system prompts us to enter the new values ​​for each of the variables listed here.



The typical Input section is as follows:
Input
A Number
B
C String
D Yes-No
EndInput
Here are a few points to remember:
A. All variables begin with a letter.
B. There are three types of variables: Number, String, Yes-NO.Number is a real type, the value is any one real
Number, String is the character type, the value is any string, Yes-No is the Boolean type, that is, the value is YES or NO
& Lt; / RTI & gt;
C. If you do not specify a variable type (such as the above B), then the system when it is real type.
D. When prompted, we do not enter the new value, the variable will take the current value of the system, the first run is not entered,
The system will be a real variable value is 0, Boolean variable value is NO, string-type variable value is empty.



You can use IF ... Else ... End If in the Input section to implement selective input.
In the Input section can also be suggested for the input variables, plus tips to note:
A. The prompt must be enclosed in quotation marks
B. The prompt message must follow immediately after the corresponding input variable.
Example:
Input
Hole Yes-No
"Please confirm whether the process hole:"
If Hole == Yes
Hole_Dia Number
"Please enter the hole diameter:"
Hole_Num Number
"Please enter the number of holes:"
Endif
...
End Input
(Above, to confirm whether the hole, if there are holes, and then enter the number of holes and diameter, if no hole, then do not enter the number of holes and diameter)


Third, Relations ...... End Relations
The word is also a statement section, the first line is Relations, the last line is End "relationship" in the edit. If a line of relationship too
Long (up to 80 characters in one line), you can write a backslash (\) at the end of the line, and then write on the next line.
The following are the relational expressions that are used in the part / component: The various relationships that are added to the part / component
(Not including the relationship between the sketch and array relational.) In programming can also be added directly to the relationship here, all here
Of the relationship, can be in the "features"



Relations
A = "Part0007"
B = 20.0
C = d5 * 5 / d2
D = cos (d6)
End Relations
Note: As we all know, the Relations statement section, you can also use the IF statement.


Fourth, Add ...... End Add
It can be subdivided into three categories: Add Feature Feature Name ... End Add, Add Part Part Name ... End Add, Add
Subassembly subcomponent name ... End Add. They are also statements, the first line is Add Feature (Part / Subassembly)
Feature name (part name / sub-component name), the last line is End Add, the middle is the characteristics (parts / sub-components) specific information, these
Body information in general do not have to ignore it because there is no let us edit things.
This statement can be used with IF and Suppressed to control the display and implication of features (parts / subcomponents).
For features, this section lists the main parameters of the feature, such as size / stretch depth, etc. However, to keep in mind, directly in the
Here to change these parameters is useless !!!
The name of the feature / part name / sub-component name, which can be a character variable. If it is a character variable, use brackets
Up, example:
Add Part (PartName)




Fifth, Execute ...... End Execute

This statement is used only in the component. Its role is to pass parameters from the component to the part to control some of the parameters in the component
It is also a statement section, the first line is Execute, the last line is the End
Execute, each line in the middle is an assignment statement. The typical structure is as follows:
Execute
Part variable name 1 = ASM variable name 1
Part variable name 2 = ASM variable name 2
...
End Execute
Normally, the same variable name, representing the same parameter, is set in the Input section of the component and the Input section in the part.
The convenience, of course, can also be different, but different words should be careful to avoid mistakes.) Then the assembly of components to components,
And then edit the program, in the corresponding Add Part ... ... End Add statement before the paragraph to add an Execute section.Thus, the regeneration,
Enter the new value for the variable, part of the shape or size can be automatically changed as required.





Sixth, Lookup_inst

This is actually a function in PROE. Its value is a string, used to find family table in the specified conditions
The specific syntax is as follows:
Lookup_inst ( "Name", matchmode, Valuename1, Value1, Valuename2, Value2 ...)
Name: The name of the model containing the family table, which must be suffixed, that is, must be written
Such as "PRT0002.prt", "ASM0007.asm" This, otherwise, can not get the correct results.
Matchmode: set the search principle, the value of -1,0,1. "- 1" that is less than or equal to the given value and the nearest given value
For example, "0" means to find an instance equal to a given value, and "1" to find an instance that is greater than or equal to the given value and closest to the given value.
Valuename1 / 2/3 ...: Family table is the parameter name, which is basically the first line in the family table that the Eastern.
Value1 / 2/3 ... is the value used to match
Example: In Part 27.prt, the family table is given three instances by dimensions d0 = 50, 70, 90, with instance names of
Part 27-1, Part 27-2, Part 27-3. Then:
Lookup_inst ( "Part27.prt", 0, "d0", 50) = Part 27-1
Lookup_inst ( "Part27.prt", 0, "d0", 70) = Part 27-2
Lookup_inst ( "Part27.prt", 0, "d0", 90) = Part27-3
Lookup_inst ( "Part27.prt", -1, "d0", 60) = Part 27-1
Lookup_inst ( "Part27.prt", 1, "d0", 60) = Part 27-2
Lookup_inst ( "Part27.prt", 1, "d0", 10) = Part27-1
Note: The above "Part27.prt" if written as "Part27", then, is not the result.



Seventh, Suppressed
This is a word, "compression" / "implied." Its role is the same as its meaning, for a feature / part / sub-component
With the right-click in the model tree with the same "implied." It can not be used alone, must be with the Add ... ... End Add statement
When you want to hide which features / parts / sub-components, as long as it corresponds to the Add ... ... End Add statement of the first
Add the line after the Add Suppressed, after regeneration it disappeared.
It should be noted that, because it is the effect of "implied" is not "hidden", so use the time to pay attention, if Suppressed the father
Pro and not Suppressed son, regeneration is the error.
Suppressed a group or a sub-feature in the array, all sub-features must be Suppressed, for groups,
In the program there is a separate Add ...... End Add statement, it should also Suppressed, otherwise an error.
However, if a setting in the Rig Riga: del_gp_memb_ind = yes, the sub-features of the group can be a separate
Suppressed.
Suppressed to restore after, can be directly in the model tree "recovery" can also be removed in the program Suppressed.
/=====================================================/





2016年11月3日 星期四

[Creo VBA] Easily add or delete parameters from Excel to Creo

Function of Design Automation
                                                             
- Add or Delete parameters by MS Excel
- Batch processing
- Fast and repetitive execution to the Creo

- The demo video only show one function of automation.

/=====================================================/
Easily process parameters from excel to creo

為何要運用Excel簡易的批次處理參數到Creo CAD?

有些設計我們會在不同的model中重複使用到相同的參數,比如LENGTH, WIDTH, DEPTH, PARTNAME, MASS等等的參數,這時候若是要在很多不同的Part(model)中使用,一個一個參數輸入,這是一件非常煩人又無聊的事情,尤其是Creo Parameter table提供給你的輸入方式對比Excel而言非常的不人性化,因此就想到使用Creo API來設計一隻程式可以快速的增加或是刪除參數。

Google translate as follow ~
Some of the design we will be reused in different models to the same parameters, such as LENGTH, WIDTH, DEPTH, PARTNAME, MASS, and so the parameters, this time if in many different Part (model) used, one parameter input , Which is a very annoying and boring things, especially the Creo Parameter table to provide you with the way, compared to Excel is very humane, so you want to use Creo API to design a program that can quickly increase Or delete the parameters.

/=====================================================/

2016年10月28日 星期五

[Creo VBA]Get Mass Properties

Design Automation
- Creo VBA
- Use Excel to Get Mass Properties of Model
- Excel connect to Creo

/=====================================================/
- IpfcParameters
- IpfcParameterOwner
- IpfcParameter
- IpfcBaseParameter
- IpfcParamValue
- IpfcNamedModelItem

/=====================================================/


The demo video







[Creo VBA] Get Parameter

Design Automation
- Creo VBA
- Use Excel to Get Model's Parameter and list.
- Excel connect to Creo

/=====================================================/
- IpfcParameters
- IpfcParameterOwner
- IpfcParameter
- IpfcBaseParameter
- IpfcParamValue

/=====================================================/


The demo video





[Creo API] Open Model

Design Automation
- Creo VBA
- Use Excel to Open Creo 3D Model
- Excel connect to Creo

/=====================================================/
- CCpfcModelDescriptor
- EpfcModelType.EpfcMDL_ASSEMBLY

/=====================================================/


The demo video








[Creo API] Start Creo

Design Automation
- Creo VBA
- Use Excel to Start Creo 3D software
- Excel connect to Creo

/=====================================================/
- CCpfcAsyncConnection
- AsyncConnection

/=====================================================/

The demo video









2016年5月19日 星期四

Creo How to import points? 如何匯入點群

Creo How to import points?


工作上有時候需要從外部讀入曲面的資料,尤其是逆向工程由3D量側的點群,該如何作呢?

1) Open a new text file with the x, y, z locations and key in x y z  coordinate

-100.000 -40.013   1.255
 -99.999 -45.012   1.276
-100.001 -50.011   1.292
 -99.999 -55.009   1.305
 -99.999 -60.007   1.311
 -99.999 -65.006   1.309





2) Save as text file as "*,pts" => "new-file-name.pts"


3) Insert points into a part file using Import function (Creo)

Import

http://creosimpleautomation.blogspot.tw/


Open a pts file

http://creosimpleautomation.blogspot.tw/






Done

http://creosimpleautomation.blogspot.tw/


Enjoy it!





2016年3月24日 星期四

[Design Automation]SOLIDWORKS 3D CAD

看看SOLIDWORKS 3D CAD關於Design Automation的效益說明

其中DriveWorksXpress有設計自動化的客制服務 ~

研究設計自動化的過程,看到許多的英國公司都有不錯的服務,這才是賺腦袋的錢

From https://www.solidworks.com/sw/products/3d-cad/design-automation.htm
------------------------------------------------------------------------------------------------------------------------
SOLIDWORKS 3D CAD software gives designers and engineers powerful tools to speed the development of design variants and automate repetitive design tasks, accelerating the design process, saving time and development costs, and increasing productivity.
Design Automation Overview
SOLIDWORKS 3D CAD tools automate repetitive design tasks, benefiting companies making custom products for bid/RFP, as well as high volume manufacturers. SOLIDWORKS design automation tools include:
DriveWorksXpress—Automate your design process, and generate infinite variations of a model using a rules-based project that you set up once and run again and again
Capture and re-use design knowledge to save time and money
Incorporate design rules to minimize errors and cost from manual mistakes
Automate repetitive tasks to dramatically reduce design time when specifying new variants
Free design engineers from doing repetitive tasks to concentrate on new and special designs
Generate variations quickly and easily based on rules you create
Hotkeys—Automate many simple tasks with only a few mouse clicks
SOLIDWORKS Macros—Automate and streamline tasks with only a few steps
Task Scheduler—Schedule and automatically drive off-peak batch processing activities
Links to Microsoft® VBA—Generate custom automation using standard industry automation tools
Built-in Application Programming Interface (API)—Automate specific functions in SOLIDWORKS







版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/

2016年3月23日 星期三

[Share] CAD 軟體市占率(2015)

CAD 軟體,因為用途、產業、使用習慣導入等,已經有越來越不一樣的趨勢,隨著個人、3D列印、創客的增加,免費一定是會增長的,看來要研究一下Free CAD了,免得改天沒工作。

約20年前,很多的軟體還要key入指令才能夠運作,現在都是圖形話介面,而未來應該是直接用說的或是思考就可以驅動CAD 繪製圖面。

專業Pro的3D CAD中還是有區分高階、中階跟低階這些的區分為何,有時候要看產業別的應用為何,在整體CAD市場中,市占率畢竟還是難敵低價、免費跟好操作的中低階軟體...

CAD是一種設計工具,可以讓工程師更簡單、更快速及更方便的在產品產出階段前去實現設計意圖,這跟設計構思的強弱沒有絕對的關係!

好用的工具用的習慣就好,來看看2015關於3D CAD 的市占率

------------------------------------------------------------
以下資料跟圖片來自blog.cnccookbook.com
(http://blog.cnccookbook.com/)
------------------------------------------------------------

Pro



Mid



Free






版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/

------------------------------------------------------------------------------------------------------------

2016年3月15日 星期二

[觀點] 機構產品設計_CAD建立步驟

如果你是產品機構的新手,或是轉換CAD system你會花錢上CAD課、也可能直接入社會跟前輩學習~

<照片擷取自網路的教學課程>



若是只是為了學CAD使用指令,直接上一門課程付出時間跟費用....

但....有天當你成為一個機構工程師後,會發現.....上課與證照,有些部份你只是多花錢的,但學到的卻不是有用的方式!

...看看原廠上課的教材 CAD如何建構Model 圖<#1>

CAD指令對不對?都..........對

但是,當要設計變更時一變更後,嗯.....模型怎會長這樣子(#2~#4)

或許,這只是要表達某些指令特徵而創立的Model,卻沒有融入設計步驟的觀念,最終你給新手的參考只是一個不合適的示範模型。


<#1>





<#2>




<#3>




<#4>



機構設計不是只要會CAD 指令操作,你設計中有50~80%是在「設計變更」產品修正;

指令的學習一點就通,重要的是設計程序! 

這是很多機構工程師都忽略的,反正產品出來就好了....


設計程序結合了產品經驗、製作方法,設計修改意圖等等;沒有這些東西,你只是一個會指令的操作員,套句大家常開的玩笑話 => 只要會extrude & cut指令,就可以作機構工程師了。

從這模型中,會發現此CAD建立步驟,有些特徵參照就是隨意參考甚至是錯誤參考,沒有考慮設計修改,當要設計變更時自然會再生模型錯誤,更深入的若想要設計參數自動化更是不可能!


2016年3月6日 星期日

[Creo VBA] How to update Parameters ?

How to update Parameters?

在前面,有介紹如何變更參數Creo VBA API_由Excel設計變更修改Creo Parameter參數

,這裡用一個簡單的範例來說明參數是如何的更新,以及程式碼的分享。

Here's a simple example to illustrate how to update parameters, and share code.


1) 先在Creo 中設定好模型與參數
     First Create a model and set parameters.




2) 參數表 Parameter table



3) Excel VBA撰寫程式與介面
     Programming and  interface.



4)執行Excel VBA,同步設計變更
   Executive Excel VBA, synchronous design changes.



5) Update Parameter => Excel VBA Code

'-------------------------------------------------------
Private Sub Update_Dim_Click()

Dim px As IpfcParameterOwner
Dim p01(3), p02(3) As String
Dim p1 As IpfcParameter
Dim p2 As IpfcBaseParameter
Dim Mitem As CMpfcModelItem
Dim pv1 As IpfcParamValue

...
...
...

End Sub

'-------------------------------------------------------





2016年2月22日 星期一

[Creo API] 由Excel設計變更修改Creo Parameter參數

上一篇 [Creo VBA API_How to get Parameters quickly? 如何快速獲取參數 ?],如何藉由Excel快速獲取參數 !

藉由Excel取出參數只是一個附屬的功能,真正要做的是「由Excel設計變更修改Creo Parameter參數」進行實現快速的設計自動化;

Get parameter value is only a subsidiary function via Excel,
Really need to do is "From Excel to modify the design changes of Creo Parameter" rapid design automation;

為何這樣說呢?

若你有100個以上的參數要變更,一個一個在設計table表中例出,然後又一一的在Creo 參數表中輸入,那真的會花費許多時間!
If you have more than 100 parameters to change,one by one listed in the table design table , and then another one in Creo input parameter table, it really takes a lot of time!


來看看怎麼實現透過Excel VBA API設計變更修改Creo CAD 參數
Show you how to get the parameter via Excel VBA API

Step 1: Excel VBA API  <=> Creo CAD ,取得Parameter參數






Step 2: 從Excel 修改Parameter參數,黃色欄位 
             Modify Parameter Parameter from Excel, yellow field
    - 1) NO_PT1_CIRCLE  16 => 6
    - 2) TYPE_PT1  2 => 1 
    - 3) TYPE_PT2  2=> 1

請留意,除了數量變動外,特徵已經變更了
The value has been changed and features have changed.






2016年2月21日 星期日

[Creo API] How to get Parameters quickly? 如何快速獲取參數 ?

One buttom gets all the parameters.


上一篇 [Creo Relations_Parameter(參數)],談到了什麼是參數Parameter,當你開始使用簡易的設計自動化時,設定的參數不會太多甚至只有10個以下,但是當設計架構越來越複雜的時候,要細部控制的條件越來越多時,參數往往是超過100個以上 (我有一個專案,目前的控制及非控制參數約300個),在這情況下,若是在Creo的環境中,找參數、改參數、甚至是數參數數量都是一件不簡單的事情。
Previous [Creo Relations Parameter (parameter)], talking about what are the parameters Parameter, when you start using a simple design automation, parameter setting will not be too much even only 10 or less, but when more and more complex design architecture conditions of time, to control more and more detail for a long time, often more than 100 parameters above (I have a project, the current control and non-control parameters approximately 300);
In this case, find the parameters, change parameters, and even the number of calculation parameters are a difficult thing


言歸正傳!

How to get Parameters ? 如何獲取參數 ?

Method 1:
Tools >Parameter>File>Export ,選擇csv or text format,然後用Excel或是筆記本匯入即可(參考下圖)。




匯入Excel的參數列表





How to get Parameters quickly

上面,這是每個人都會做的,差別只是知道跟不知道而已,但是這還是太慢了,因為要好幾個步驟,若是常常作,肯定會是一件累人的事情而又沒效率的事情,所以呢?
有沒有什麼方法,可以如何快速獲取參數 ?
Is there any way, how you can quickly get the parameters?

使用Creo VBA API,這部份就是要利用Creo 提供的API撰寫一個Excel VBA API,來讀取參數了,如下。

Use Creo VB API, this part is to use API Creo offers a writing Excel VBA API, to read the parameters, as follows.


Method 2:

Step 1:Open Creo




Step 2:Open Model (找出需獲取參數的檔案)




Step 3: 取得參數的資訊 Get parameters information

這範例,我將Open Model及Get Parameter這兩個步驟寫在一起,所以打開檔案就會自動取得參數
This example, I'll Open Model and Get Parameter write these two steps together, so open file will automatically obtain the parameters.




來比較一下左邊是Creo Parameter 畫面 (螢幕無法擷取全部),右邊是Excel VBA的資料,是不是很簡單呢?
To compare the figure below,the Left information is the Parameter table and the right information is Excel VBA table.

利用Excel VBA API 一個Open的按鍵動作,就將Creo Model中的參數全部取出。

Use Excel VBA API, an Open operation command. Get all of the parameters from Creo Model.






2016年2月3日 星期三

[Creo Relations] Parameter(參數)

Parameter(參數)

Parameter(參數)這是PTC Creo的核心之一,不懂參數的應用可以說基本上就不用想要去實現設計自動化了!




以下對於Parameter(參數)的說明,取自PTC的說明:

  • Parameters enable you to add additional text or numeric information to a model.
  • Parameter types: 
  1. Integer
  2. Real Number
  3. String
  4. Yes/No
  • Parameter categories: 
  1. Local
  2. External
  3. User-defined
  4. System
  • Display parameters in the model tree.
  • Create parameter rules.

Parameter types (參數形態)

針對比較重要的Parameter types來作說明,參數形態有4種:

  • Integer 
=> 整數,不含小數點 ,例如你要定義Pattern的數量,這不會有小數點 x.x,
    一定是整數,則此參數就可以用Integer。
  • Real Number  
=> 一般的數值,如尺寸、運數值等,只要不是整數的數值,
     此參數定義成Real Number  。
  • String
   =>字串或是文字,若參數是要作為文字的就需定義成String。
  • Yes/No
            =>若參數使用於條件是的判斷式,使用邏輯運算Type需定義為Yes /No
     (Yes =True ,No =False)。


Tips:

Parameter Name(參數名字)的使用注意,參數本身的文字定義中間不可有空白,需要"_"連接,
舉例:要定義孔的直徑(Diameter of Hole) ,Parameter Name(參數名字):
  • DIAMETEROFHOLE
  • DIAMETER_HOLE
  • DIAMETER_OF_HOLE 



2016年2月2日 星期二

[Creo Relations] Simultaneous Equations(聯立方程式)

如何用Creo Relations解Simultaneous Equations(聯立方程式)

關於Simultaneous Equations(聯立方程式)
About Simultaneous Equations 

在Relations中的Simultaneous Equations,幾個變量(參數)或尺寸必須同時解決,因此考慮到這些規則來創建聯立方程式,幾個要點:

Relations in the Simultaneous Equations, several variables (parameters) or size must be resolved, taking into account these rules to create simultaneous equations points:

  • 聯立方程式開始前,必須聲明聯立方程中使用的變量,例如,下面例子中的面積= 1000。
  • 當求解聯立方程式,系統僅返回一個組結果(即使方程式的解是多於一個以上的解)。
  • 您可以混用單變量關係的聯立方程式。

  • Before the beginning of simultaneous equations, simultaneous equations must declare the variable used, for example, following the example of area = 1000.

  • When solving the simultaneous equations, the system returns only one set of results (even if the solution is more than one equation above solution).

  • You can mix univariate relationship simultaneous equations.


一個Model最簡單的就是算面積,已知一長方體的面積跟周長,如何求出長跟寬?

A simple example, a rectangular area with the known perimeter, how long now find wide?

Parameter:
  •  Length => L
  • Width => W
Conditions:
  • The area equals 100
  • The perimeter equals 140
Equations:
  •  Area (面積) =L*W
  •  Perimeter =L*2+W*2 =(L+W)*2 
Relation:
---------------------------------------------------------------------------------------------------------------
/*Simultaneous Equations
AREA = 1000
PERIMETER = 140
SOLVE
L*W = area
2*(L+W) = PERIMETER
FOR L W
---------------------------------------------------------------------------------------------------------------

來看看,經由Relations中的Simultaneous Equations求解出來的L,W分別是多少?
From Simultaneous Equations =>   L,W?

答案是L =50 ,W=20




Tips:

  • 聯立方程式要在SOLVE and FOR 間敘述。
  • 出現在聯立方程中的任何變量(Variables),不是在FOR列表中的將被解讀為常數(Constants)。

若有仔細去計算,其實這個方程式的答案有2組 (L,W) =(50,20) & (20,50);
The answer to this equation has 2 groups (L, W) = (50,20) & (20,50);


延伸題,若是W > L,Relation程式要怎麼改寫呢?
Extend, if W> L, How to rewrite this Relation?

結果在下面,動動腦試試看!







版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/
------------------------------------------------------------------------------------------------------------
這Blog作為自己撰寫研究Creo Simple Automation設計自動化的分享。 

[Creo Relations] Example_2_Auto Orientation(自動定向)

如何用Relation 寫出特徵的自動定向?
Feature automatic orientation by Relation?

有些情況下,一些模型的特徵位置不是固定的,需要依據其他的條件來作為方向的定向(位置),這時候若是有規則性的就可以使用程式來自動的控制。

In some cases, the location of some of the features of the model is not fixed, it is necessary under other conditions as the orientation (position) direction, this time if there are rules of the program can be used to automatically control.

以下程式需要使用:
1. Relation => IF的判斷式
2. Parameter =>參數的定義
3. Model => 特徵的設計方法

以實例說明:Example

一個模型上會有一圓(孔)的特徵,而這孔的位置會隨著使用的條件而變動,假設圓(孔)的特徵會在Block的四邊出現(Right ,UP,Left ,Down),該怎麼來寫這個程式呢?

There will be a circle (hole) on a model feature, the location of the hole with the input conditions will change, it is assumed circle (hole) feature will appear (Right, UP, Left, Down) in the Block of four sides, How to write this program ?






1) Model => 特徵的設計方法

    請參考Model Tree

2) Parameter =>參數的定義

 L,W,H,DIA => Real number
    ORIENTATION => String
 

3) Relation => IF的判斷式

 使用IF的條件,來控制讓圓(孔)的特徵,假設要讓特徵出現在右側

  IF ORIETATION =="R"
  d10=L/2
  d11=0
  ENDIF



來看看結果吧!

<ORIETATION =="L"圓(孔)的特徵出現在左側 Circle (hole) features appear in the left







<ORIETATION =="D">圓(孔)的特徵出現在下側 Circle (hole) features appear on the lower side




簡單的自動化程式,若在Assembly的組件下,配合Program or Notebook(Layout)的程式,可以讓你的組件一次自動變更。

Simple automated programs.With the Program or Notebook (Layout) programs make your component,Design changes can be completed once.




版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/
------------------------------------------------------------------------------------------------------------
這Blog作為自己撰寫研究Creo Simple Automation設計自動化的分享。 

2016年2月1日 星期一

[Creo Relations] About Relation

前一篇,說明了Relation的應用
Previous Article illustrate the application of Relation

Creo Relation_Example_1_Auto Pattern No. (自動計算Pattern No.)


這一篇來說明一下,什麼是Relations?
This article to explain what is Relations?


關於Relations (關係式)
About Relations (relations)

關係(也稱為參量的關係)的用戶定義的方程之間寫入符號尺寸和參數。關係讓你通過定義捕捉設計意圖關係特徵或零件內,或裝配組件之一。

可以使用關係來控制建模過程通過以下方式:

  • 要控制修改對模型的影響
  • 要為零件和裝配尺寸定義值
  • 要為設計條件的約束。例如,通過在指定的孔的位置有關的部分的邊緣。
  • 為了描述一個模型或組件的不同部分之間的條件式


關係可以是簡單值(例如,D1 =4)或複雜的,有條件的,分支語句。



Relations (關係式)的使用
Relations (relation) to use

以Creo 3.0為例,開啟檔案後 >Tools>Relations,就可以打開Relations的程式編輯視窗





Relations (關係式)的基本用法 
Basic Relation Operators and Functions
- Commenting
   Use /*
- Symbols
   d#, for example
- Predefined variables
   PI, for example
- Arithmetic
   +, –, /, *, ^, ( )
- Assignment
   Equal sign “=”
- Mathematical functions
   sin (), cos (), tan (), for example
- Mass properties

Advanced Relation Operators and Functions
- Comparison operators:
   ==, <, &, !
- Conditional statements:
  IF, ENDIF, ELSE
- String functions:
 <>, itos(int), for example
- Specify the number of decimal places to ceil and floor.


Relations (關係式)的類型
Relations (relation) type

有兩種類型的關係:
等式 (算術運算)- 
方程式左邊的參數等於右邊的運算式。這種關係用於給尺寸和參數指定一值。

  • +加-減/除*乘^指數()分組括弧 例如,d0 = (d1- d2)*d3指定一值運算子
  • =等於(=) 是一個指定一值運算子,它使得兩邊的式子或關係相等。如果使用等號,方程式左邊只能有一個參數。

例如:

  • 簡單的指定一值:d1 = 3.25
  • 複雜的指定一值: d2 = d3*(SQRT(d4/5.0+d5))


~下表擷取自Proe Tutorial~




比較(對照運算) - 
比較方程式左右兩邊的運算式。這種關係通常用於作為一個限制或用於邏輯分支的條件說明中。

  • 返回 TRUE/FALSE 值時可使用對照運算子。例如,當 d1 大於或等於 3.5 時,下面的關係返回 TRUE。當 d1 小於 3.5 時,它返回 FALSE:d1 >= 3.5
  • 系統支援下列對照運算子:
           == 等於> 大於>= 大於或等於!=, <>,~= 不等於< 小於<= 小於或等於| 或& 與 ~, ! 非
           注意:「等於」指定一值運算子不同於「等於」對照運算子。
  • 運算符 號 |、&、! 和 ~ 擴展了對照關係的套用,它們使得能在單一的語句中設定若干條件。例如,當 d1 在 2 和 3 之間且不等於 2.5 時,下面關係返回 TRUE:
          d1 > 2 & d1 < 3 & d1 ~= 2.5

例如:

作為限制:(d1 + d2) > (d3 + 3.4)
在條件說明中:IF (d1 + 2.3) >= d2


~下表擷取自Proe Tutorial~



可在關係中使用下列參數類型
尺寸符號 - 支援下列尺寸符號類型:

d# - 零件或組件模式下的尺寸。
d#:# - 組件模式下的尺寸。組件或元件的作業階段標識新增為字尾。
rd# - 零件或頂層組件中的參考尺寸。
rd#:# - 組件模式中的參考尺寸。組件或元件的作業階段 ID 新增為字尾。
rsd# - 草繪器中(截面)的參考尺寸。
kd# - 在草繪器(截面)中的已知尺寸(在父零件或組件中)。
Ad# - 零件、組件或工程圖模式下的驅動連帶尺寸。
公差 - 與公差格式聯結的參數。當尺寸由數位的轉向符號的時侯出項這些符號。
tpm# - 加減對稱格式中的公差;# 是尺寸數。
tp# - 加減格式中的正公差;# 是尺寸數。
tm# - 加減格式中的負公差;# 是尺寸數。
例證數 - 某一陣列方向之例證數的整數參數。
p# - 其中 # 是例證的個數。


其他:

若有心可以找到更多的Relation function.

舉例: max(x,y) =>兩個參數來比大小,If x>y, returns x, otherwise y.


Relations (關係式)的教學查詢

1. 以前ProE會有Help/Tutorial可以查詢
     https://www.ncsu.edu/project/graphicscourse/gc/proetut/relation.html
2. 到http://learningexchange.ptc.com/線上學習
3. 使用Google查尋Creo Relations




版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/
------------------------------------------------------------------------------------------------------------
這Blog作為自己撰寫研究Creo Simple Automation設計自動化的分享。 



[Creo Relations] Example_1_Auto Pattern No. (自動計算Pattern No.)

在瞭解Relation的程式與用法前,先來看看Relation可以怎麼用,畢竟網路上面太多的範例都是寫用法跟寫說明,但是要怎麼用呢?如何節省你的設計變更時間呢?

Before understanding Relation programs and usage, take a look at how you can use Relation, after all, much above the network usage examples are written with instructions, but how to use it? How to save your design changes time?

以下,我舉例一個設計上面的應用例子,在設計Heatsink時難免都要用到散熱鰭片(這裡忽略不談熱傳學與公式),基本上散熱片都要有長(L)寬(W)高(H)這3個基本的參數,今天有一新的設計或是再討論散熱效率下,可能隨時都要變更長度來對應產品的需求。
結果呢?每次變更長度都要按計算機來算散熱片的數量,這樣是不是很繁瑣,而也可能還會計算錯或是輸入錯誤,因此,來看看怎麼在已知設計參數的情況下,讓Creo自動計算散熱片的數量並立即反應在模型上。

Now, I use the example of a design example above, when it is inevitable in the design Heatsink fins should be used (here ignore that science and heat transfer equations), basically fins must have length (L) Width (W) High (H) three basic parameters.
Today there is a new design or a discussed under thermal efficiency, demand may change at any time should correspond to the length of the product.
The result? The length of each change must be using a computer to calculate the number of fins, this is not very complicated, but it may also miscalculate or input errors; therefore, to see how in the known design parameters, let Creo automatic calculation of the number of fins and immediately reflected in the model.



Parameter:
1. Length  (L)   =>期望變動的設計值 Design changes in the desired value
2. Width   (W)
3. FIN_HEATSINK_PITCH
4. FIN_HEATSINK_PITCH_PAD
5. FIN_HEATSINK_SAPCE
6. NO_FIN_HEATSINK






Relation:
--------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------

Relation 說明:
1)
FIN_HEATSINK_PITCH_PAD=2
FIN_HEATSINK_SPACE=4
這定義成固定值(也可不定義由Parameter輸入),若是有變動再來調整數值即可

This is defined as a fixed value (or not defined by Parameter input), if there are changes you can adjust the values again

2) FIN_HEATSINK_PITCH定義Pattern的Pitch,由FIN_HEATSINK_PITCH_PAD & FIN_HEATSINK_SPACE計算而來

FIN_HEATSINK_PITCH defined Pattern of Pitch, calculated by FIN_HEATSINK_PITCH_PAD & FIN HEAT SINK SPACE.

3)d283 這是Pattern的起始位置,從邊開始算,一樣是FIN_HEATSINK_PITCH_PAD+FIN_HEATSINK_SPACE/2求得

d283 This is the starting position of the Pattern.
Calculated from the edge by FIN_HEATSINK_PITCH_PAD + FIN_HEATSINK_SPACE / 2 is obtained

4)NO_FIN_HEATSINK

從陣列的公式中,要計算N個陣列Total Ptich
From the formula array, to calculate the N array Total Ptich

Total Ptich=Pitch *(No-1)=FIN_HEATSINK_PITCH*(NO_FIN_HEATSINK-1)

所以,若長度是L要計算Pattern的數量,就是
Therefore, if the length is L, to calculate the number of Pattern, that is

L=(FIN_HEATSINK_PITCH_PAD+FIN_HEATSINK_SPACE/2)*2+Total Ptich

  =(FIN_HEATSINK_PITCH_PAD+FIN_HEATSINK_SPACE/2)*2+
     FIN_HEATSINK_PITCH*(NO_FIN_HEATSINK-1)

  =FIN_HEATSINK_PITCH_PAD*2+FIN_HEATSINK_SPACE+
     FIN_HEATSINK_PITCH*(NO_FIN_HEATSINK-1)

求解:
Solving:

 NO_FIN_HEATSINK=
(L-FIN_HEATSINK_PITCH_PAD*2+FIN_HEATSINK_SPACE)/FIN_HEATSINK_PITCH+1


結果:
Result:

1) 設計變更Design change  L= 355 => NO_FIN_HEATSINK=60





2) 設計變更Design change  L= 82=> NO_FIN_HEATSINK=14





由以上的說明,透過數學公式與Relation的程式,可以讓你節省下來按計算機的時間與錯誤的機會發生,而這就是透過Relation得到的最簡單的程式自動化;更深入點透過撰寫API程式,這就是一個小的二次開發插件了。

From the above description, through mathematical formulas and Relation of the program allows you the opportunity to be saved by the computer's time and the occurrence of errors, and this is through the most simple program Relation obtained automation; deeper point by writing API programs, which It is a small secondary development plug-in.

以真正的應用計算,這公式還有需要改進的地方,因為L必須跟 FIN_HEATSINK_PITCH_PAD & FIN_HEATSINK_SAPCE有關聯,動腦想想看加上一些IF判斷式與條件語句寫出自己的演算法,進而讓你的CAD動起來,而不是一步一步的手動更改設計。

In real application terms this formula there is room for improvement, since L must be associated with FIN_HEATSINK_PITCH_PAD & FIN_HEATSINK_SAPCE, brains to think with some judgment formula IF conditional statement to write their own algorithms, and then let your CAD automation, rather than manually step by step to change the design.




版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/
------------------------------------------------------------------------------------------------------------
這Blog作為自己撰寫研究Creo Simple Automation設計自動化的分享。 



Simple Automation_ 工程師4.0_ [序]

這Blog紀錄自己學習與撰寫Creo 3D設計自動化的經驗分享給其他的人!

為何要寫Simple Automation?

相信不久的將來,只會CAD軟體操作會沒有競爭力,以自己的工作而言,手動的設計已經比起其他的人快與精準了20%以上,但我還是不滿意這種手動的設計方式!

若是將產品的Model寫入程式,在類似的產品設計架構只要動動手key in 參數,馬上就可以延伸出其他新的Model,這應當是比較有效率的設計方式;
但,前提是你要有精準的模型架構以及寫入上百行甚至是上千行的程式,未來工程師要面對的是有嵌入程式的CAD

工業4.0,工廠跟機器都自動化、智慧化了....而工程師呢?

當工廠跟製成都走向工業化4.0的方向,效率跟速度都變快了,而前段的產品設計人員,你要思考的是「設計方法是不是也要自動化」?一個產品(機構)設計工程師,若用3D CAD設計方式還是一步一步來,這方式將會是太慢且太沒效率。

複雜且單調的日常設計工作,對於一個沒程式背景機構工程師而言,寫程式來驅動CAD是一件非常難的事情;相對的,對於程式設計人員也是一樣的,不會操作3D CAD軟體,不懂產品的設計架構、流程與設計規範,會寫程式也是溝通不到、驅動不了 CAD。

簡易的設計自動化_Simple Automation of Creo 3D CAD

好了,主題偏差了!

7~8年前,剛接觸PTC WildFire時也簡單的認識了參數式設計,慢慢的對於這參數式的核心設計方式也愈來越感到興趣⋯除了平常的設計外,後來自己開始摸索簡單的設計自動化,從Relation,Layout(Creo => Notebook),Program到後來的API,找不到範例就自己看說明與Userguide;最簡易的就是Relation,一開始確實是用得很簡單的程式,但是後來發現原來這也可以用的很複雜,只是要花時間去想出自己的3D設計流程架構,程式邏輯跟演算法,所以呢?Relation雖簡單,卻是可以讓單調複雜的工作變簡單,無形中你的設計工作效率會異常的快與準,尤其是你會將Design rule或是Design guide寫入CAD中時。

Creo 的簡易設計自動化,從最簡單的Relation ,Program,UDF到複雜的API(VB,Web.Link,J.Link,Toolkit等),都是可以實現設計自動化或是半自動話的方式,但通常這很少人會去投入,為何?
聽過的理由,通常都是沒有足夠的時間、人力和金錢,用以投入讓CAD可以自動化設計,或是產品是很獨特的難以執行自動化等等。其實,我覺得應該是老闆不肯去投資昂貴的客製化費用,找不到會CAD又會客製化的語言的人才以及客製化的程式太難維護才是主因。

對於一個機構工程師而言Relation ,Program,是比較簡單與易學的方法,API卻是異常的難入門(除了要研究各程式語言外,還要看懂與瞭解各Creo API的天書,想想PTC 的顧問一天要價3萬元以上不是沒有道理的),但不管是哪一種方法,都是要自己從網路去找或是去找user guide研究居多,我的經驗中英文的分享均多反而是中文的比較少!
Why?人工便宜,廉價工程師太好用,不是嗎?

下列舉一個工作上的範例,如何計算Film因為溫度變化所需要預留的漲縮空間(Gap_Film2Housing)
--------------------------------------------------------------------------------------------------------------------------
Relation Example:

/*GAP_FILM_HOUSING
GAP_FILM_HOUSING_L=(AA/2+FILM_L)*(100.1*10^-6)*(85-25)+(SQRT(0.2^2+0.2^2)+0.4)*0.5
/*δ(mm)=Δt(℃) *L(mm) *α(1/℃ ),Temperature HIGH =85;/*Housing tolerance±0.2mm、Film cut tolerance ±0.2mm,Humidity gap=0.4
--------------------------------------------------------------------------------------------------------------------------

平常這都是用計算機或是Excel來算,來算算用Excel的步驟如下:
1) 在Model中量測Film尺寸,量測Housing尺寸
2) 將量測數據帶入Excel表內,用表格公式計算,求出GAP_FILM2HOUSING
3) 將GAP_FILM2HOUSING的值與CAD Model比對,並進行修正

以上,這些步驟跟計算算算也要10多分鐘,況且若要設計修正,是不是要來來回回呢?
萬一key錯、量測錯,後面要付出的就不只是時間跟成品而已;反之當你將Design rule寫入CAD中的時間,就是不會出錯誤,除非你公式或是程式有問題,修改參數馬上就是呈現結果,好處就是即時跟正確性。

說這麼多,先來分享如何用Relation & Layout(Notebook)來設計一個方形的矩陣,只要改變長、寬,以及需求的Pattern數量,他就會自動算出(Pitch相等)劃出你要的CAD,當然你也可以用Pattern中的Curve Pattern,但畢竟可以自己寫出來一個的需求,是不是一件很有成就感的事情呢?

之後,有機會分享這程式碼。


http://youtu.be/oDzblp6pycg



版權所有請勿轉載或複製
http://creosimpleautomation.blogspot.tw/
------------------------------------------------------------------------------------------------------------
這Blog作為自己撰寫研究Creo Simple Automation設計自動化的分享。 
This Blog as sharing research Creo Simple Automation.Relations,Program,Notebook(.lay),Creo API