Reply
Solved! Go to solution

Circular Pattern

Hi guys,

 

I'm very new to programming and I'm starting to learn the API. I am creating a gear, to complete this task I have been trying to create a circular pattern using the CircularPattern2d method. I get a 2d circular pattern but the 3d model pattern is not created (see image below). 

 

This is the result I am achieving:

image (1).png

This is the desired result:

image (2).png

 

I'm not sure what I am doing wrong.

 

Could anyone please give me some advice?

 

Thanks

 

Wilfredo

6 REPLIES

Re: Circular Pattern

Hi @wilfredo can not make a 3D pattern directly from a sketch, check the video.

 

Thanks.

(view in My Videos)

 

Re: Circular Pattern

Hello wilfredo,

since you did no supply any code snipped it is hard to say what you are doing wrong.

Are you doing this in sequential mode?

If you createded a pattern object in  a profile sketch, then you call the Patterns.Add() method with the feature to pattern (Array of features with one entry) and the profile to use. 

There are several ways to add a pattern...

 

There is as code example in the Help of Part Patterns.Add method (sesdk.CHM file or  http://support.industrysoftware.automation.siemens.com/training/se/107/api/webframe.html)

 

Hope this helps.

JB

 

 

regards

JB
VS2015, SE ST10

Re: Circular Pattern

Hi JB,

 

Thanks for your reply. Here is a code snippet of what I am trying to achive. I am following the sequence you suggested. Nevertheless, I still don't get the expected result.

 

Perfil = Perfiles.Add(PlanosReferencia.Item(3))

Circulos = Perfil.Circles2d
Circulo = Circulos.AddByCenterRadius(0, Di / 1000, Di / (10 * 1000))
Perfil.Visible = False
aPerfiles = Array.CreateInstance(GetType(SolidEdgePart.Profile), 1)
aPerfiles.SetValue(Perfil, 0)
Modelos = Pieza.Models
Modelo = Modelos.AddFiniteExtrudedProtrusion(aPerfiles.Length, aPerfiles, SolidEdgePart.FeaturePropertyConstants.igLeft, b / 1000)

Dim featurestopattern(0) As Object

Dim objCircPats2d As SolidEdgeFrameworkSupport.CircularPatterns2d

objCircPats2d = Perfil.CircularPatterns2d
Call objCircPats2d.AddByCircle(CenterX:=0.0#, CenterY:=0.0#, StartX:=0, StartY:=Di / 1000, _
                                             Orientation:=SolidEdgeFrameworkSupport.Geom2dOrientationConstants.igGeom2dOrientCounterClockwise, _
                                             OffsetType:=SolidEdgeFrameworkSupport.PatternOffsetTypeConstants.sePatternFillOffset, Count:=20, AngularSpacing:=(360 / 20) * Math.PI / 180)

featurestopattern(0) = Modelo

Call Pieza.Models.Item(1).Patterns.Add(NumberOfFeatures:=1, FeatureArray:=featurestopattern, Profile:=Perfil2, PatternType:=SolidEdgePart.PatternTypeConstants.seFastPattern)

I also tried to open the link you provided but it's broken. 

 

Do you have any other suggestions?

 

Thanks.

 

Wilfredo


Solution
Solution
Accepted by topic author wilfredo
‎07-29-2016 02:09 PM

Re: Circular Pattern

Hi Wilfredo,

I found 2 problems:

 - you have to create a new profile for the pattern

 

 

Snippet

Dim objCircPats2d As SolidEdgeFrameworkSupport.CircularPatterns2d
 
     ' create new Profile !!
     PSet = PSets.Add()
     Perfiles = PSet.Profiles
     Dim Perfil2 As SolidEdgePart.Profile = Perfiles.Add(PlanosReferencia.Item(3))
 
     objCircPats2d = Perfil2.CircularPatterns2d
     Call objCircPats2d.AddByCircle(CenterX:=0.0#, CenterY:=0.0#, StartX:=0, StartY:=Di / 1000, _
                                     Orientation:=SolidEdgeFrameworkSupport.Geom2dOrientationConstants.igGeom2dOrientCounterClockwise, _
                                     OffsetType:=SolidEdgeFrameworkSupport.PatternOffsetTypeConstants.sePatternFixedOffset,
                                     Count:=20, AngularSpacing:=0)

(I use PatternOffsetTypeConstants.sePatternFixedOffset for an evenly spaced pattern, so AngularSpacing value is obsolete)

 

- then use the created feature object (not the model) to create the 3D pattern

 

 Snippet

' use the created protusion feature, not the model
     featurestopattern(0) = Modelo.ExtrudedProtrusions.Item(1)
 
     ' if in sequential mode
     Call Modelos.Item(1).Patterns.Add(NumberOfFeatures:=1, FeatureArray:=featurestopattern, Profile:=Perfil2, PatternType:=SolidEdgePart.PatternTypeConstants.seFastPattern)
 

This assumes the Solid Edge is in sequential mode.

If in synchronous mode then use

 

Snippet

Call Modelos.Item(1).Patterns.AddSync(NumberOfFeatures:=1, FeatureArray:=featurestopattern, Profile:=Perfil2)

 

Regards 

regards

JB
VS2015, SE ST10

Re: Circular Pattern

Hi Kanwulf,

 

Thanks for your reply this is exactly what i am trying to archive, but i need to do it using visual basic and the Solid Edge API.

Re: Circular Pattern

Hi JB,

 

Thank you so much!! that was exactly the problem, I am finally getting the result I expected.