Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Makro cvičná ukážka

UživatelPříspěvek
agaragar

Poslat zprávu | Profil
Datum: 30.8. 2012 | Zobrazeno: 10724x
Konfigurace CATIA:

Text dotazu:
Zdravím,

Posielam Makro, ktoré vytvorí znak AUDI, stačí zadať priemer kružníc.
Nie je to samozrejme žiaden "ohurovák", ale aby reč nestála.
Možno sa niekomu hodí, kto začína a spoznáva kód.

Majte sa

PS: možno upravením by sa to hodilo aj na najbližšiu olympiádu :o)



Sub CATMain()

Dim radius As Double
radius = InputBox("Ahoj :o)" & vbCrLf & vbCrLf & _
"Toto je Makro" & vbCrLf & _
"Vykreslí znak AUDI" & vbCrLf & vbCrLf & _
"Zadajte polomer kružníc:", _
"AUDI","40")

If radius="" Then Exit sub



Dim oDoc As Document
Set oDoc = catia.Documents.Add("Part")

Dim oPart As Part
Set oPart = oDoc.Part

Dim oProd As Product
Set oProd = oDoc.Product

On Error Resume Next
catia.ActiveDocument.Product.PartNumber = "AUDI"
ierr = Err.Number

If ierr <> 0 Then

On Error GoTo 0
catia.ActiveDocument.Product.PartNumber = "AUDI"

End if

Dim oPlaneXY As Reference
Set oPlaneXY = oPart.CreateReferenceFromGeometry(oPart.OriginElements.PlaneXY)

Dim oSketch As Sketch
Set oSketch = oPart.Bodies.Item(1).Sketches.Add(oPlaneXY)

Set myAxis = oSketch.AbsoluteAxis

Dim oFactory2D As Factory2D
Set oFactory2D = oSketch.OpenEdition



r = radius + radius / 2

Dim distance As Double
distance = radius

For i = 1 To 4

Dim oCircle As Circle2D
Set oCircle = oFactory2D.CreateClosedCircle(0, radius, distance)

radius = radius + r

Next

Dim oFactory As ShapeFactory
Set oFactory = oPart.ShapeFactory

Dim oPad As PAD
Set oPad = oFactory.AddNewPad(oSketch, r / 7)
oPad.IsThin = True
oPad.NeutralFiber = True
Dim parameters1 As Parameters
Set parameters1 = oPart.Parameters
parameters1.Item(5).Value = r / 7

Dim oSelec As Selection
Set oSelec = catia.ActiveDocument.Selection

oSelec.Add oPad

Dim oVisPro As VisPropertySet
Set oVisPro = oSelec.VisProperties

oVisPro.SetRealColor 30, 100, 180, 1

Dim oRef As Reference
Set oRef = oPart.CreateReferenceFromName("")

Dim oFillet As ConstRadEdgeFillet
Set oFillet = oFactory.AddNewSolidEdgeFilletWithConstantRadius(oRef, catTangencyFilletEdgePropagation, r / 25)

Dim reference1 As Reference
Set reference1 = oPart.CreateReferenceFromBRepName("RSur:(Face:(Brp:(Pad.1;2);None:();Cf9:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", oPad)

oFillet.AddObjectToFillet reference1

Dim reference2 As Reference
Set reference2 = oPart.CreateReferenceFromBRepName("RSur:(Face:(Brp:(Pad.1;1);None:();Cf9:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", oPad)

oFillet.AddObjectToFillet reference2

oSelec.Clear
oSelec.Search (".plane")
oVisPro.SetShow catVisPropertyNoShowAttr

oSelec.Clear
oPart.Update


Dim oVie As Viewer
Set oVie = catia.ActiveWindow.ActiveViewer
oVie.Reframe
oVie.FullScreen = True
osketch.closeedition

End Sub

Ing Jan Cinert

Poslat zprávu | Profil
[#3298] | Publikováno: 30.08. 2012 - 19:48
Nic proti, ale tohle nebude fungovat dobře nebo dokonce vůbec. Používáte tam funkci CreateReferenceFromBRepName, ale název Padu může být pokaždé úplně jiný.

Znaky automobilek jsou v některých speciálních fontech, pak stačí jen napsat daný znak ve výkresu, uložit jako DXF a pak jen zkopírovat a vložit do skici.
agaragar

Poslat zprávu | Profil
[#3301] | Publikováno: 31.08. 2012 - 14:20
Ono si to v tomto príklade na začiatku vytvori nový súbor!


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.