Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Referenz Ebenen mit VB

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Importformate aus dem Windows Dateiexplorer heraus öffnen
Autor Thema:   Referenz Ebenen mit VB (425 mal gelesen)
amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 01. Nov. 2004 13:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

hat jemand mal ein Beispiel zur Hand, wie ich mir eine Referenzebene mit VB erstelle, oder wie ich mir eine "on the fly" Ebene mit VB erstelle um darauf Bohrungen zu plazieren.

Die Ebene soll durch den Ursprung eines definierten Koordinatensystem gehen und dessen X- und Y-Achse beinhalten.

Danke,
AMG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 01. Nov. 2004 16:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Moin,

im Prinzip so:
    dim objApp as SolidEdgeFramework.Application
    dim objDoc as SolidEdgePart.PartDocument   
    Dim objRef As SolidEdgePart.RefPlane
    '
    set objApp = GetObject(, "SolidEdge.Application")
    set objDoc = objApp.ActiveDocument
    '
    ' parallel to x-z Plane
    Set objRef = objDoc.RefPlanes.AddParallelByDistance(objDoc.RefPlanes(3), 0.125, igPlanePlaneAlignY, , , False)
    objRef.Visible = True


Mit der Ausrichtung must halt mal probieren (object-Browser  SolidEdgePart.ReferenceElementConstants
)

modeng

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 01. Nov. 2004 20:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Klaus,

also die Sache mit den Ebenen hab ich jetzt raus.
Nur krieg ich SE nicht dazu das er mir Löcher generiert.

Hier ist mein Code:
Wo ist der Fehler?

Public objApp As SolidEdgeFramework.Application
Public objDoc As SolidEdgePart.SheetMetalDocument
Public nCoSys As Integer
Public sCoSys As String
Public objCoSys2Use As SolidEdgePart.CoordinateSystem
Public objPlane As SolidEdgePart.RefPlane

Public objHoleProfile As SolidEdgePart.Profile
Public objHoleData As SolidEdgePart.HoleData
Public objHoles As SolidEdgePart.Holes
Public objHole As SolidEdgePart.Hole

Public objModel As SolidEdgePart.Model


Sub makro()

'Turn on error handling.
On Error Resume Next

'Connect to a running instance of Solid Edge.
Set objApp = GetObject(, "SolidEdge.Application")

If Err Then
    MsgBox "Solid Edge not started"
    End
End If

'Access the currently open document.
Set objDoc = objApp.ActiveDocument

If Err Then
    MsgBox "Solid Edge Sheetmetal not opened"
    End
End If

If objDoc.Path = "" Then
    MsgBox "No document loaded / active document hasn't been saved"
    End
End If

sCoSys = "Holes"
nCoSys = objDoc.CoordinateSystems.Count

For i = 1 To nCoSys
    If objDoc.CoordinateSystems.Item(i).Name = sCoSys Then
        Set objCoSys2Use = objDoc.CoordinateSystems.Item(i)
    End If
Next

Set objPlane = objDoc.RefPlanes.AddParallelByDistance(objCoSys2Use.Plane(seCoordSysXYPlane), 0, igNormalSide, objCoSys2Use.Axis(seCoordSysXAxis), , False)

Set objHoleProfile = objDoc.ProfileSets.Add.Profiles.Add(objPlane)

Call objHoleProfile.Holes2d.Add(0, 0.1)

Set objHoleData = objDoc.HoleDataCollection.Add(igRegularHole, 0.005)

'Set objHole = objHoles.AddThroughAll(objHoleProfile, igNormal, objHoleData)
Set objHoles = objModel.Holes.AddThroughAll(objHoleProfile, igLeft, objHoleData)

cya
AMG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 01. Nov. 2004 23:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Moin,

seufz ... muessen es ausgerechnet HOLES sein -- zu Cutouts wuerd' mir vielleicht
noch etwas einfallen aber Holes da muss ich erstmal passen ...

Aber: so ich sehe ist da nocht nichts wo die Loecher denn hinein sollen
oder ich hab's uebersehen. Einfach in die Ebene, wie bei Auspraegung
geht IMHOIn my humble opinion = Meiner bescheidenen Meinung nach nicht.

Es ist u.U. moeglich eine neues Hole2d Objekt anzulegen aber um dann
damit ein Hole zu erzeugen braucht es etwas mehr wie Nichts: eine
Flaeche eine Teils aber eine Ebene ist etwas zu wenig -- aber nur etwas ;-)

Klaus

[Diese Nachricht wurde von modeng am 01. Nov. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 02. Nov. 2004 00:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Mahlzeit,

laesst einem keine Ruhe ... hatte aber Probleme mit dem Statement:
Set objPlane = objDoc.RefPlanes.AddParallelByDistance(objCoSys2Use.Plane(seCoordSysXYPlane)
          , 0, igNormalSide, objCoSys2Use.Axis(seCoordSysXAxis), , False)

da kannte der Compiler dies nicht: objCoSys2Use.Plane(seCoordSysXYPlane

Na gut so gings jedenfalls. Nicht benoetigter Vorspann weggelassen

[...]

Public objHoleProfile As SolidEdgePart.Profile
Public objHoleData As SolidEdgePart.HoleData
Public objHoles2d As SolidEdgePart.Holes2d      <---
Public objHole2d As SolidEdgePart.Hole2d        <---
Public objHole As SolidEdgePart.Hole            <----

[...]
'
'
' parallel to x-z Plane
Set objPlane = objDoc.RefPlanes.AddParallelByDistance(objDoc.RefPlanes(3), 0.125, igPlanePlaneAlignY, , , False)
objPlane.Visible = True
'
Set objHoleProfile = objDoc.ProfileSets.Add.Profiles.Add(objPlane)
'
'  Set objHoles2d = objHoleProfile.Holes2d  <-- nur falls haeufig gebraucht
'
Set objHole2d = objHoleProfile.Holes2d.Add(0, 0.001)    '  y = 1 mm da Distanzen in Metern!
'
Set objHoleData = objDoc.HoleDataCollection.Add(igRegularHole, 0.005)
'
Set objModel = objDoc.Models(1)    <--------
'
Set objHole = objModel.Holes.AddThroughAll(objHoleProfile, igLeft, objHoleData)    '

letztes Statement: es wird ein Hole zurueckgegeben.daher def auf ..Hole

Man muss natuerlich wissen wo das Loch in Relation zum Teil plaziert
wird ---- sonst wird es nix

Klaus

P.S.

and then one wonders why a man ages so fast in this nutty business ;-))

[Diese Nachricht wurde von modeng am 02. Nov. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 02. Nov. 2004 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Klaus,

ich hab zwar keine Ahnung warum er die Konstanten (secoordsysxyplane, usw...) nicht nimmt. Wenn ich allerdings anstelle der Konstanten die numerischen werte eintrage gehts.

Mal schauen ob ich jetzt das it den Löchern im Teil auch noch hinbekomme.


cya
AMG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 02. Nov. 2004 16:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

ich glaub das programierenist nicht wirklich meine Welt.

Dank die Hilfe von Klaus kommt jetzt ein Loch zustande.

Wie mach ich es, wenn ich auf der HolesProfile Ebene mehrer Löcher in
einen Holes Befehl packen möchte.
Es erscheint bei mir in der Edgebar dann immer ein Loch mit Ausrufezeichen.
In der Skizze sind die beiden Löcher zu erkennen, nur die Ausprägung
der Löcher funzt net.

mein letzter Ansatz war

Set objPlane = objDoc.RefPlanes.AddParallelByDistance(objCoSys2Use.Plane(4), 0, 2, objCoSys2Use.Axis(1), , False)
objPlane.Visible = True

Set objHoleProfile = objDoc.ProfileSets.Add.Profiles.Add(objPlane)

Set objHoles2d = objHoleProfile.Holes2d

'Set objHole2d = objHoles2d.Add(0, 0.01)
'Set objHole2d = objHoles2d.Add(0, 0.02)

Set objHole(1) = objHoles2d.Add(0, 0.01)
Set objHole(2) = objHoles2d.Add(0, 0.02)

Set objHoleData = objDoc.HoleDataCollection.Add(33, 0.005) '33=igRegularHole

Set objModel = objDoc.Models(1)

'Set objHole = objModel.Holes.AddThroughAll(objHoleProfile, 1, objHoleData) '1=igLeft

Set objHoles = objModel.Holes.AddThroughAll(objHoleProfile, 1, objHoleData) '1=igLeft


Und dann noch die frage, wann nehm ich .hole und wann .holes?

cya
AMG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 02. Nov. 2004 21:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

hmm, also je Profile kann mit der Methode AddThroughAll offensichtlich
nur eine Bohrung vorhanden sein da ja nur ein Object Hole zurueckgegeben
wird. Dann aber haette man n-Profile in der Edgebar -- nicht Sinn und
Zweck der Uebung.
Nur habe ich im Moment keine Idee wie's anders geht. Wenns nur Loecher
sein sollen geht's moeglicherweise mit ExtrudedCutout einfacher -- keine Ahnung.

.holes = Collection (alle Holes) dieses Profiles
.hole = ein Loch/Bohrung aus der .holes Collection

Simpel = .holes  = wie VB Array
        .hole = wie VB ein Element des Arrays

Klaus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz