Knowledge Pattern의 기초(01)
CreateOrModifyDatum
This method is only used in the Knowledge Pattern Feature.
Enables you to create or modify a datum.
-datumType: Indicates the datum type: Point, Line, Curve, Circle, Surface, Plane, Volume..
-Destination: Indicates the destination feature (PartBody, ...).
-PatternList: Indicates the pattern list.(The Knowledge Pattern List that should track the geometry)
-IndexInPatternList: Indicates the index number in the pattern list.
Rule Example(03) : Create a Loop in a Rule
Case1.
Let x(Point)
for x inside `ListTest`
{
if (x.GetAttributeReal("X") < 0.02)
x.SetAttributeReal("Z",0.10)
else
x.SetAttributeReal("Z",0.01)
}
case 2.
let i = 1
let x(Point)
for i while i<=`ListTest` .Size()
{
x = `ListTest` .GetItem(i)
if (x.GetAttributeReal("X") < 0.01)
x.SetAttributeReal("Z",0.1)
else
x.SetAttributeReal("Z",0.2)
}
Collect Points(alternative) : Create formula that will automatically fill in the list
1.Click the Formula icon to Create List
2. Click the Add Formula. The Formula Editor is displayed.
3. OpenBodyFeature.Query("Point",""). Click OK twice when done.
4. You can find "List.3=OpenBodyFeature.Query("Point","")"
5. Click "OK" when done. The formula is added to the Relations tree
2. Click the Add Formula. The Formula Editor is displayed.
3. OpenBodyFeature.Query("Point",""). Click OK twice when done.
4. You can find "List.3=OpenBodyFeature.Query("Point","")"
5. Click "OK" when done. The formula is added to the Relations tree
Rule Example(02): Collect Points(in OpenBodyFeature) to List
Let tmpList(List)
Let tmpList2(List)
Let tmpPoint(Point)
Let I (Integer)
Set I=1
tmpList = `PointTest` .Query("Point","")
For I While I<= tmpList.Size()
{
tmpPoint = tmpList.GetItem(I)
If tmpPoint.IsRoot == true
{
tmpList2.Append(tmpPoint)
}
}
`List_PTG` = Copy(tmpList2)
Let tmpList(List)
Let tmpList11A(List)
Let tmpList11B(List)
Let tmpList12(List)
Let tmpList21(List)
Let tmpList22(List)
Let tmpCrv(Curve)
Let I (Integer)
Set I=1
tmpList = `Series\Type-TB` .Query("Curve","")
※ 외부리스트로 처리하지말고 내부적으로 처리할것(속도차이에 매우 유리함)
For I While I<= tmpList.Size()
{
tmpCrv = tmpList.GetItem(I)
If tmpCrv.Name == "11A_UPPER_Flange_BaseLine-A"
{
tmpList11A.Append(tmpCrv)
}
else if tmpCrv.Name == "11B_UPPER_Flange_BaseLine-B(LvDown)"
{
tmpList11B.Append(tmpCrv)
}
else if tmpCrv.Name == "12_UPPER_Web-EndLine"
{
tmpList12.Append(tmpCrv)
}
else if tmpCrv.Name == "21_UNDER_Flange_BaseLine"
{
tmpList21.Append(tmpCrv)
}
else if tmpCrv.Name == "22_UNDER_Web-EndLine"
{
tmpList22.Append(tmpCrv)
}
}
`11A_UPPER_Flange_BaseLine-A` = Copy(tmpList11A)
`11B_UPPER_Flange_BaseLine-B(LvDown)` = Copy(tmpList11B)
`12_UPPER_Web_EndLine` =Copy(tmpList12)
`21_UNDER_Flange_BaseLine` =Copy(tmpList21)
`22_UNDER_Web-EndLine` =Copy(tmpList22)
Let tmpList2(List)
Let tmpPoint(Point)
Let I (Integer)
Set I=1
tmpList = `PointTest` .Query("Point","")
For I While I<= tmpList.Size()
{
tmpPoint = tmpList.GetItem(I)
If tmpPoint.IsRoot == true
{
tmpList2.Append(tmpPoint)
}
}
`List_PTG` = Copy(tmpList2)
Let tmpList(List)
Let tmpList11A(List)
Let tmpList11B(List)
Let tmpList12(List)
Let tmpList21(List)
Let tmpList22(List)
Let tmpCrv(Curve)
Let I (Integer)
Set I=1
tmpList = `Series\Type-TB` .Query("Curve","")
※ 외부리스트로 처리하지말고 내부적으로 처리할것(속도차이에 매우 유리함)
For I While I<= tmpList.Size()
{
tmpCrv = tmpList.GetItem(I)
If tmpCrv.Name == "11A_UPPER_Flange_BaseLine-A"
{
tmpList11A.Append(tmpCrv)
}
else if tmpCrv.Name == "11B_UPPER_Flange_BaseLine-B(LvDown)"
{
tmpList11B.Append(tmpCrv)
}
else if tmpCrv.Name == "12_UPPER_Web-EndLine"
{
tmpList12.Append(tmpCrv)
}
else if tmpCrv.Name == "21_UNDER_Flange_BaseLine"
{
tmpList21.Append(tmpCrv)
}
else if tmpCrv.Name == "22_UNDER_Web-EndLine"
{
tmpList22.Append(tmpCrv)
}
}
`11A_UPPER_Flange_BaseLine-A` = Copy(tmpList11A)
`11B_UPPER_Flange_BaseLine-B(LvDown)` = Copy(tmpList11B)
`12_UPPER_Web_EndLine` =Copy(tmpList12)
`21_UNDER_Flange_BaseLine` =Copy(tmpList21)
`22_UNDER_Web-EndLine` =Copy(tmpList22)
Rule Example(01) :Change Object Name
0. 해당구문의 형식은 아래와 같음
Let newname(String)
newname='Input String'
'Input Object'.Name=newname
Let newname(String)
newname='Input String'
'Input Object'.Name=newname
다수의 Volume 객체의 결합
Volume의 경우 Boolean연산의 장점에 따라 활용도가 높은 지오메트리 임에도 볼구하고, 단순히 1대 1의 Add연산만 가능한 관계로 많은수의 Volume을 다루는데 있어 불편한 점이 있다. 하지만, Volume끼리 겹치는 부분이 없는경우 Translate과 join을 응용하여 많은수의 Volume의 결합하는 Tip을 소개한다.
1. 결합할 Volume들을 확인한다.
- 서로 중복되는 부분이 없는 Volume들에게만 적용하는 것을 원칙으로 한다.
( Volume이 서로 겹치는 경우도 이방법의 적용이 가능하지만, 적용후 살펴보면 겹치는 부분이 결합이 되어 있지 않고 단순히 중복이 되어있는 상태-결합이 아닌 집합의 상태-가 된다. 이 경우 후속연산시 Error의 원인이 될 수 있으므로 주의가 필요하다.)
1. 결합할 Volume들을 확인한다.
- 서로 중복되는 부분이 없는 Volume들에게만 적용하는 것을 원칙으로 한다.
( Volume이 서로 겹치는 경우도 이방법의 적용이 가능하지만, 적용후 살펴보면 겹치는 부분이 결합이 되어 있지 않고 단순히 중복이 되어있는 상태-결합이 아닌 집합의 상태-가 된다. 이 경우 후속연산시 Error의 원인이 될 수 있으므로 주의가 필요하다.)
2. Translate명령을 적용한다. 이동하는 값은 "0"로 하여 위치변동이 없게하며. 'Result' 옵션에서 반드시 Surface를 선택한다. 이경우 결과값은 Volume의 표면 surface로 나타나게 된다.
3. 결과값이 surface이기때문에 'Join'명령의 적용이 가능하다. 서로 연속성이 있는 surface는 아니기 때문에 'Check connexity' 체크박스는 해제하도록 한다.
4. Volume의 'Colse Surface'명령을 실행하여 다시 Volume을 생성한다. 결과를 확인해보면 하나의 볼륨으로 만들어진것을 확인할 수 있다.
CATIA에서 Mesh형식파일(ex. STL) 활용하기
1. Rhino등의 프로그램에서 stl형식으로 파일저장
2. Catia에서 mesh형식 읽어들이기
- GSD에서는 Surface matching Tool에서 가능
- 이외에 Start > Shape > Digitized Shade Editor 또는 Quick Surface Reconstruction 에서도 가능
- Start > Machinig > STL Rapid Prototyping 역시 가능함
※ Point Cloud를 다룰경우 위와 같은 별도의 모듈을 사용하는 것이 좋음
3. Flat / Smooth Shading 전환
- 해당객체의 Properties 항목에서 관련사항등을 조절할것.
2. Catia에서 mesh형식 읽어들이기
- GSD에서는 Surface matching Tool에서 가능
- 이외에 Start > Shape > Digitized Shade Editor 또는 Quick Surface Reconstruction 에서도 가능
- Start > Machinig > STL Rapid Prototyping 역시 가능함
※ Point Cloud를 다룰경우 위와 같은 별도의 모듈을 사용하는 것이 좋음
3. Flat / Smooth Shading 전환
- 해당객체의 Properties 항목에서 관련사항등을 조절할것.
GSD_Toolbar_001
GSD.01.standard
1. New
2. Open
3. Save
4. Print
5. Cut
6. Copy
7. Paste
8a. Undo / 8b. Undo with history
9a. Redo / 9b. Redo with history
10. What's this? (Shift+F1)
GSD.02.workbench
: opens the Welcome panel
※ Apparently, "Painter" is very useful for organizing objects
GSD.04. Knowledge
1. Formula
2. URLs & Comment
3. Check analysis Toolbox(선택분석도구상자)
4a. Design Table
4b. Law
5. Knowledge Inspector
6a. Lock selected parameters
6b. Unlock....
7. EquivalentDimensions
GSD.05. View
1. Fly / Examine mode
2. Fit All in
3. Pan
4. Rotate
5. Zoom In
6. Zoom Out
7. Normal View
8. Create Muilt View
9. Quick view(pulldown)
10. View mode(pulldown)
11. Hide/Show
12. Swap wisible space
GSD.06. 3Dx Device
This functionality is available for any application-supported hardware providing the necessary buttons, e.g. Space Mouse and the Spaceball range of 3D input devices, joysticks, Intersense wand, etc.
GSD.07. Workbenches
see "Menubar > Tool > Customize > User Workbenches"
1. New
2. Open
3. Save
4. Print
5. Cut
6. Copy
7. Paste
8a. Undo / 8b. Undo with history
9a. Redo / 9b. Redo with history
10. What's this? (Shift+F1)
GSD.02.workbench
: opens the Welcome panel
GSD.03.Graphic Properties
GSD.04. Knowledge
1. Formula
2. URLs & Comment
3. Check analysis Toolbox(선택분석도구상자)
4a. Design Table
4b. Law
5. Knowledge Inspector
6a. Lock selected parameters
6b. Unlock....
7. EquivalentDimensions
GSD.05. View
1. Fly / Examine mode
2. Fit All in
3. Pan
4. Rotate
5. Zoom In
6. Zoom Out
7. Normal View
8. Create Muilt View
9. Quick view(pulldown)
10. View mode(pulldown)
11. Hide/Show
12. Swap wisible space
GSD.06. 3Dx Device
This functionality is available for any application-supported hardware providing the necessary buttons, e.g. Space Mouse and the Spaceball range of 3D input devices, joysticks, Intersense wand, etc.
GSD.07. Workbenches
see "Menubar > Tool > Customize > User Workbenches"
GSD.08. ErrorLog
to activate it, see "Tools > Options > Statistics"
피드 구독하기:
글 (Atom)