Difference between pages "GenerateOffCurve" and "GeneratePublication"

From scripting
(Difference between pages)
Jump to: navigation, search
(Created page with " global proc string GenerateOffCurve(vector $Pt1, vector $Pt2, float $OffDist, string $NameStr) { vector $MidVec = OffMidVector($Pt1, $Pt2, $OffDist); vector $M1 = O...")
 
(Created page with " Function GeneratePublication(CurPart As Part, CurObj As Variant) As Publication Dim GBool As Boolean GBool = False Dim CurSel Set CurSel = CurObj Dim partDocument1 As...")
 
Line 1: Line 1:
  global proc string GenerateOffCurve(vector $Pt1, vector $Pt2, float $OffDist, string $NameStr) {
+
  Function GeneratePublication(CurPart As Part, CurObj As Variant) As Publication
vector $MidVec = [[OffMidVector]]($Pt1, $Pt2, $OffDist);
+
Dim GBool As Boolean
vector $M1 = [[OffMidVector]]($MidVec, $Pt1, 0.01);
+
GBool = False
vector $M2 = [[OffMidVector]]($MidVec, $Pt2, 0.01);
+
Dim CurSel
string $Curv = `curve -d 3 -p ($Pt1.x) ($Pt1.y) ($Pt1.z) -p ($M1.x) ($M1.y) ($M1.z) -p ($MidVec.x) ($MidVec.y) ($MidVec.z) -p ($M2.x) ($M2.y) ($M2.z) -p ($Pt2.x) ($Pt2.y) ($Pt2.z) -k 0 -k 0 -k 0 -k 1 -k 2 -k 2 -k 2 -n ($NameStr)`;
+
Set CurSel = CurObj
+
return $Curv;
+
Dim partDocument1 As PartDocument
  }
+
Set partDocument1 = AvailDocs.Item(CurPart.Name & ".CATPart")
 +
Dim product1 As Product
 +
Set product1 = partDocument1.GetItem(CurPart.Name)
 +
Dim reference1 As Reference
 +
Set reference1 = product1.CreateReferenceFromName(CurPart.Name & "/!" & CurSel.Name)               '"T01_DRV/!Plane.1")
 +
 +
Dim Pubs As Publications
 +
Set Pubs = product1.Publications
 +
 +
For Z = 1 To Pubs.Count
 +
    If Pubs.Item(Z).Name = CurSel.Name Then
 +
        GBool = True
 +
    End If
 +
Next Z
 +
If GBool = False Then
 +
    Dim publication1 As Publication
 +
    Set publication1 = Pubs.Add(CurSel.Name)
 +
    Pubs.SetDirect CurSel.Name, reference1
 +
End If
 +
Set GeneratePublication = publication1
 +
  End Function
  
  
Old Versions...
 
  
global proc string GenerateOffCurve(vector $Pt1, vector $Pt2, float $OffDist) {
+
[[Category:CATIA DP VB]]
vector $MidVec = [[OffMidVector]]($Pt1, $Pt2, $OffDist);
 
vector $M1 = [[OffMidVector]]($MidVec, $Pt1, 0.01);
 
vector $M2 = [[OffMidVector]]($MidVec, $Pt2, 0.01);
 
string $Curv[] = `curve -d 3 -p ($Pt1.x) ($Pt1.y) ($Pt1.z) -p ($M1.x) ($M1.y) ($M1.z) -p ($MidVec.x) ($MidVec.y) ($MidVec.z) -p ($M2.x) ($M2.y) ($M2.z) -p ($Pt2.x) ($Pt2.y) ($Pt2.z) -k 0 -k 0 -k 0 -k 1 -k 2 -k 2 -k 2 `;
 
 
return $Curv[0];
 
}
 
 
 
 
 
''More information on vectors and vector mathematics, read pages 14-16, 20-21 in [http://stores.lulu.com/nickpisca YSYT]. 
 
[[Category:MEL]]
 

Latest revision as of 05:38, 22 April 2017

Function GeneratePublication(CurPart As Part, CurObj As Variant) As Publication
Dim GBool As Boolean
GBool = False
Dim CurSel
Set CurSel = CurObj 

Dim partDocument1 As PartDocument
Set partDocument1 = AvailDocs.Item(CurPart.Name & ".CATPart")
Dim product1 As Product
Set product1 = partDocument1.GetItem(CurPart.Name)
Dim reference1 As Reference
Set reference1 = product1.CreateReferenceFromName(CurPart.Name & "/!" & CurSel.Name)                '"T01_DRV/!Plane.1")

Dim Pubs As Publications
Set Pubs = product1.Publications 

For Z = 1 To Pubs.Count
    If Pubs.Item(Z).Name = CurSel.Name Then
        GBool = True
    End If
Next Z
If GBool = False Then
    Dim publication1 As Publication
    Set publication1 = Pubs.Add(CurSel.Name)
    Pubs.SetDirect CurSel.Name, reference1
End If
Set GeneratePublication = publication1
End Function