Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Einfügen Block per API

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: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen
Autor Thema:  Einfügen Block per API (5497 mal gelesen)
weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

SolidWorks 2016 SP4.0
M6800 K3100 Win7 64bit
Eplan P8 2.5
ARAS

erstellt am: 17. Jul. 2007 11:59    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,

vielleicht gibts hier ein paar API Spezialisten die mir helfen können.

Das Einfügen von Blöcken per API hat sich in SWX2007 geändert. Wenn ich nun den geänderten Befehl verwende:

set swBlockDef = swSketchMgr.MakeSketchBlockFromFile(pos, "Hallo.SLDBLK", False, 1, 0)

set swBlockInst = swSketchMgr.InsertSketchBlockInstance(swBlockDef, pos, 1, 0)

dann bekomme ich zwar alles wie ich will nur der Name des Blocks entspricht nicht dem Namen der Datei "Hallo" sonder er wird im FeatureBaum einfach Block-1 genannt.
Wenn ich den Block von Hand einfüge dann heist er "Hallo".

Hat jemand eine Idee wie ich den Block dann "Hallo" genannte bekomme?

------------------
Gruß weinel

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 17. Jul. 2007 12:04    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 weinel 10 Unities + Antwort hilfreich

Hallo Weinel,

einfach bei deinem BlockInstance Objekt die Property Name verwenden.
Zum Beipspiel

Code:
swBlockInst.Name = "Mein neuer Block"

Das wars!

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

erstellt am: 17. Jul. 2007 12:45    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 Daniel,

genau das wars. Danke!
Ich hatte das auch schon ausprobiert, aber man muss einen EditRebuild machen, damit man den geänderten Namen zu sehen bekommt. Das hatte ich nicht gemacht und deshalb dachte ich, dass es so nicht geht!

Nochmal vielen Dank!

------------------
Gruß weinel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 17. Sep. 2007 16:49    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 weinel 10 Unities + Antwort hilfreich

Hallo Spezialisten,
an den Thread muss ich mich gleich anhängen, ich hab da auch ein älteres Programm, dass ich an SWX2007 anpassen muss, und auch ich scheitere am Einfügen des Blocks..aber schon an der Definition der Einfügeposition.
(Die API ist mit der 2007 nicht wirklich durchschaubarer geworden  )

Mit der Hilfe komme ich hier nicht weiter, und die C#-Beispiele bringen mir jetzt auch nicht gerade viel 

Wenn ich das mit dem Super-Macro-Recorder aufzeichne, bringt der mir an der Stelle, wo eigentlich die Position stehen sollte, ein "Nothing". Richtigerweise lässt sich das aufgenommene Macro auch nicht abspielen.

Was mache ich denn hier falsch?

Code:
Dim swApp As Object
Dim Part As Object

Dim swMathUtil As SldWorks.MathUtility
Dim swMathPoint As SldWorks.MathPoint
Dim newBlockDefinition As Object

Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Set swMathUtil = swApp.GetMathUtility
Set SelMgr = Part.SelectionManager

Dim pt(2) As Long ' oder as Double?
pt(0) = 100 'irgendwelche Koordinaten zum Testen
pt(1) = 100
pt(2) = 0

Hier bleibts stecken:
swMathPoint = swMathUtil.CreatePoint(pt)

'CreatePoint will laut Hilfe ein "ArrayData" als Input..wieso frisst der mein Array nicht? Ist ja auch ein schmarrn...warum reichen hier nicht einfach die Koordinaten?

'so müsste es dann (vielleicht) weiter gehen, aber soweit bin ich noch nicht gekommmen:
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile _
    (swMathPoint, "c:\temp\testblock.sldblk", False, Nothing, 1, 0)

set swBlockInst = swSketchMgr.InsertSketchBlockInstance(newBlockDefinition , swMathPoint, 1, 0)
'Zu was eigentlich nochmal einfügen, die Position wurde doch schon bei "MakeSketchBlockFromFile" mitgegeben?

End Sub


Mann war das früher schön einfach:
    Set Block = Part.InsertBlock(BlockName, X, Y, 0, 1)
Basta
Nix mit tausend Objekten rummachen und zig dinge definieren, die keiner braucht.
Da wurde die API gehörig verschlimmbessert. "Objektorientiertes Programmieren" ist ja schön und gut, aber man kann auch alles übertreiben..
Ups...gehört ja gar nicht hier her, musste aber mal raus.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 17. Sep. 2007 21:10    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 weinel 10 Unities + Antwort hilfreich

Hallo Klaus,

nicht gleich aufgeben!
Der Laufzeitfehler 91 müsste dir doch eigentlich bekannt sein. Zumindest der Hinweis: "Objektvariable oder With-Blockvariable nicht festgelegt" gibt dir bereits den Hinweis!
Aber ich weis wie schwer es ist, wenn man eine Zeit in .Net programmiert, an das Set bei vb6 und somit auch in der SolidWorks VBA zu denken.
Also einfach dein MathPoint mit folgender Zeile belegen:

Code:
Set swMathPoint = swMathUtil.CreatePoint(pt)

Die Funktion habe ich weiter nicht getestet. Wenn es Probleme gibt, wie immer einfach melden!

Gruß aus Nürnberg

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
VBasic / vb.net / vbs / wsh | Freeware

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Sep. 2007 09:00    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 weinel 10 Unities + Antwort hilfreich

Danke, da hätte ich vielleicht auch drauf kommen können/müssen/sollen...aber manchmal..naja.

Nach Lektüre vom Beitrag Makro für Oberflächenbeschaffenheit und Bearbeitungsangaben bi ich jetzt darauf gekommen, dass die nächste Zeile auch falsch war, da war ein "Nothing" zuviel drin..obwohl diese Syntax vom Super-Macro-Recorder stammt.

Die muss also heißen

Code:
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile _
    (swMathPoint, "c:\temp\testblock.sldblk", False, 1, 0)

Ach ja, Pt muss natürlich als Double definiert sein, nicht als Long 
So, der Block kommt jetzt.
Aber an der nächsten Zeile ist wieder Schluss:

Code:
Set swBlockInstance = Part.SketchManager.InsertSketchBlockInstance(newBlockDefinition, swMathPoint, 1, 0)
bringt wieder den Laufzeitfehler 13: Typen unverträglich.
Auch die Variante von der Seite blog.inflow-tech.com
Code:
  vInstances = swSketchBlockDef.GetInstances
  Set BlockInstance1A = vInstances(0)

macht da keinen Unterschied.

Aber ich denke, auf diese Instanzierung kann ich erst mal verzichten, da ich die Blöcke nur absetzen muss, nicht weiter damit arbeiten.

Uff...

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

erstellt am: 18. Sep. 2007 09:37    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

Zitat:
Original erstellt von KMassler:
Aber an der nächsten Zeile ist wieder Schluss:
Code:
Set swBlockInstance = Part.SketchManager.InsertSketchBlockInstance(newBlockDefinition, swMathPoint, 1, 0)
bringt wieder den Laufzeitfehler 13: Typen unverträglich.

Wie hast du denn die Variable SwBlockInstance definiert?

------------------
Gruß weinel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Sep. 2007 09:50    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 weinel 10 Unities + Antwort hilfreich

so:
Code:
    Dim swBlockInstance As SldWorks.BlockInstance

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

erstellt am: 18. Sep. 2007 10:08    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

In 2007 sollte das wohl heisen:

Dim swBlockInstance As SldWorks.SketchBlockInstance

Probiere das mal aus!

------------------
Gruß weinel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Sep. 2007 11:10    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 weinel 10 Unities + Antwort hilfreich

Herzlichen Dank,
damit gehts. 

Wenn ich die Instanz für die Aufgabe auch nicht benötige, ist das gut zu wissen 

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

mkkk
Mitglied



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

Beiträge: 105
Registriert: 04.03.2005

erstellt am: 18. Sep. 2007 14:34    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 weinel 10 Unities + Antwort hilfreich

So ist's besser:

Set swMathPoint = swMathUtil.CreatePoint((pt))

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

mkkk
Mitglied



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

Beiträge: 105
Registriert: 04.03.2005

erstellt am: 18. Sep. 2007 14:49    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 weinel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von mkkk:
So ist's besser:

Set swMathPoint = swMathUtil.CreatePoint((pt))


...Der Einfügepunkt liegt nicht mehr im Zeichnungs-Dokument- Koordinatensystem, sondern im Koordinatensystem der jeweiligen Zeichenansicht.

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Sep. 2007 15:39    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 weinel 10 Unities + Antwort hilfreich

Versteh ich zwar jetzt nicht, was die (()) bewirken, ist aber in diesem Fall auch egal.
Zu dem Zeitpunkt, wenn hier der Block eingefügt wird, hat die Zeichnung noch keine Views.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

mkkk
Mitglied



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

Beiträge: 105
Registriert: 04.03.2005

erstellt am: 19. Sep. 2007 11:37    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 weinel 10 Unities + Antwort hilfreich

Die doppelte Klammerung bei der Parameterübergabe sollte man immer im Hinterkopf behalten.
Denn hiermit wird Basic gezwungen den Variablentyp in den Parametertyp der Funktion zu konvertieren, was nicht immer automatisch korrekt funktioniert.

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 19. Sep. 2007 13:47    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 weinel 10 Unities + Antwort hilfreich

Hallo Forum,

nachdem ich beim Thema Makro/VB bis jetzt nur immer intressiert gelesen habe, habe ich mich mittlerweilen für einen VB Kurs entschieden und diesen auch gerade begonnen. Nun jucken natürlich die Finger und ich möchte mir ein Helferlein bauen, das schon länger in meinem Kopf rumspukt. Ich möchte via Makro ein Formular aufrufen auf dem Auswahlfelder für diverse Blöcke vorhanden sind. Dort soll anfewählt werden welche Blöcke auf der Zeichnung plaziert werden sollen.
So weit so gut. Nun stehe ich zur Zeit bei genau diesem MathPoint an der hier im Beitrag behandelt wurde. Wenn ich mein Makro jetzt aufrufe erscheint prima mein Formular aber wenn ich meine Haken setze und Einfügen klicke bekomme ich einen:
Laufzeitfehler '91':Objektvariable oder With-Blockvariable nicht festgelegt.


Option Explicit

Dim swApp As Object
Dim Part As Object
Dim swMathUtil As SldWorks.MathUtility
Dim swMathPoint As SldWorks.MathPoint
Dim newBlockDefinition As Object
Dim swBlockInstance As SldWorks.SketchBlockInstance
Dim pt(2) As Double

Sub cmdEinfuegen_Click()
    If cbxChemischBrueniert = True Then
Set swMathPoint = swMathUtil.CreatePoint((pt))
        pt(0) = 100
        pt(1) = 100
        pt(2) = 0
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "R:\22 Engineering\CH20\KONSTR\BibSW\TextBloecke\Beschichtung\Galvanob_Chemisch_Brünieren.SLDBLK", False, 1, 0)
        End If
        Unload Me
End Sub

Sub cmdAbbrechen_Click()
        Unload Me
End Sub


Kann mir jemand sagen was ich vergessen habe?

Wäre dankbar wenn mir jemand vom Schlauch runter hilft.

------------------
Bis demnächst!

Hans Meiser

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 19. Sep. 2007 13: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 weinel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Hans Meiser:
Kann mir jemand sagen was ich vergessen habe?

Hallo Hans,

wenn ich mir deine Code, auf die Schnelle und ohne zu Testen anschaue, würde ich sagen: Nichts vergessen sondern nur verdreht!
Dein Punkt ist noch leer:

Code:

pt(0) = 100
pt(1) = 100
pt(2) = 0
Set swMathPoint = swMathUtil.CreatePoint((pt))

So rum ist es besser!

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
VBasic / vb.net / vbs / wsh | Freeware

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

mkkk
Mitglied



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

Beiträge: 105
Registriert: 04.03.2005

erstellt am: 19. Sep. 2007 14:18    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 weinel 10 Unities + Antwort hilfreich


Das MathUtil-Objekt muß natürlich verfügbar sein:

Set swMathUtil = swApp.GetMathUtility

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 19. Sep. 2007 15: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 weinel 10 Unities + Antwort hilfreich

Danke für die Hilfe,

habe jetzt wie folgt korrigiert:

Option Explicit

Dim swApp As Object
Dim Part As Object
Dim swMathUtil As SldWorks.MathUtility
Dim swMathPoint As SldWorks.MathPoint
Dim newBlockDefinition As Object
Dim swBlockInstance As SldWorks.SketchBlockInstance
Dim pt(2) As Double

Sub cmdEinfuegen_Click()
Set swMathUtil = swApp.GetMathUtility ' Hier bleibt er nun mit Laufzeitfehler 91 stehen???
    If cbxChemischBrueniert = True Then
        pt(0) = 100
        pt(1) = 100
        pt(2) = 0
Set swMathPoint = swMathUtil.CreatePoint((pt))
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "R:\22 Engineering\CH20\KONSTR\BibSW\TextBloecke\Beschichtung\Galvanob_Chemisch_Brünieren.SLDBLK", False, 1, 0)
        End If
        Unload Me
End Sub

Sub cmdAbbrechen_Click()
        Unload Me
End Sub


Kann mir nochmals jemand einen Input geben?

Danke

------------------
Bis demnächst!

Hans Meiser

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

erstellt am: 19. Sep. 2007 15:21    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

Mal ein Verbesserungsvorschlag (habs nicht getestet):


Option Explicit

Dim swApp As Object
Dim Part As SldWorks.ModelDoc2
Dim swMathUtil As SldWorks.MathUtility
Dim swMathPoint As SldWorks.MathPoint
Dim newBlockDefinition As Object
Dim swBlockInstance As SldWorks.SketchBlockInstance
Dim pt(2) As Double

Sub cmdEinfuegen_Click()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Set swMathUtil = swApp.GetMathUtility
   If cbxChemischBrueniert = True Then
        pt(0) = 100
        pt(1) = 100
        pt(2) = 0
Set swMathPoint = swMathUtil.CreatePoint((pt))
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "R:\22 Engineering\CH20\KONSTR\BibSW\TextBloecke\Beschichtung\Galvanob_Chemisch_Brünieren.SLDBLK", False, 1, 0)
        End If
        Unload Me
End Sub

Sub cmdAbbrechen_Click()
        Unload Me
End Sub

------------------
Gruß weinel

[Diese Nachricht wurde von weinel am 19. Sep. 2007 editiert.]

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 19. Sep. 2007 15:52    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 weinel 10 Unities + Antwort hilfreich

DANKE!

Es funktioniert! Nur die Koordinaten werden in Meter interpretiert, aber das ist ja weiter kein Problem!

U's sind untertwegs und wenn mein Helferlein fertig ist werde ich es euch wissen lassen.

------------------
Bis demnächst!

Hans Meiser

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

Jörg W
Mitglied
Maschinenbautechniker und CAD Admin


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

Beiträge: 1232
Registriert: 12.07.2001

Win 10 64bit
SW2018 SP5
HP z240
16GB Ram
Quadro P1000

erstellt am: 08. Okt. 2007 15:57    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 weinel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Hans Meiser:
DANKE!

Es funktioniert! Nur die Koordinaten werden in Meter interpretiert, aber das ist ja weiter kein Problem!

U's sind untertwegs und wenn mein Helferlein fertig ist werde ich es euch wissen lassen.


Hallo Hans,

Und schon fertig???

------------------
Pfürti Jörg W 

www.hydac.com / Meine Homepage / Waleska Webdesign / CAD.de Hilfeseite / Forenstammtisch Saar

Member of CAD.de BOINC Team

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 09. Okt. 2007 15:30    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 weinel 10 Unities + Antwort hilfreich


BloeckeEinfuegen.zip

 
Hallo zusammen,

da mir einige von euch geholfen haben mein Blöcke Einfügen Makro zum laufen zu bringen, stelle ich die erste Version jetzt auch hier zur Verfügung. Vielleicht kanns ja jemand für sich anpassen und gebrauchen. Vielen Dank nochmals für die Hilfe!!

------------------
Bis demnächst!

Hans Meiser

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 10. Okt. 2007 07:39    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 weinel 10 Unities + Antwort hilfreich

sieht gut aus 

Jetzt fehlen nur noch die Blöcke dazu     

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 10. Okt. 2007 08:34    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 weinel 10 Unities + Antwort hilfreich


BloeckeEinfuegen.zip

 
Voilà,

hier noch eine etwas überarbeitete Version meines Block Makros (habe noch Härten eingefügt) inkl. der Blöcke. Die oberste Verzeichnis Struktur muss halt angepasst werden.

------------------
Bis demnächst!

Hans Meiser

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 10. Okt. 2007 09:39    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 weinel 10 Unities + Antwort hilfreich


BloeckeEinfuegen-kurz.zip

 
Da scheint beim Upload was schief gelaufen zu sein, ich seh keinen Unterschied in den Zip-Dateien.

Du hast in deinem Makro sehr viele Wiederholungen drin, das bläht das Makro extrem auf und macht es auch schwierig  bzw. aufwändig, das zu pflegen.

Ich hab mir mal erlaubt, es "gesundzuschrumpfen" 
Testen konnte ich das Ergebnis allerdings nicht, da ich deine Blöcke nicht habe.

Probiers mal aus, könnte sein, dass ich den einen oder anderen Faktor verwurschtelt hab.

Gruß

Klaus

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 10. Okt. 2007 11:24    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 weinel 10 Unities + Antwort hilfreich


TextBloecke.zip

 
Danke für den Hinweis, dass es bezüglich Übersichtlichkeit langsam etwas eng wurde hatte ich auch schon bemerkt, aber es ist halt so vor sich hin gewachsen und hat ja funktioniert. Deine kurze Variante scheint auf den ersten Blick auch zu funktionieren, werde sie mir mal noch näher anschauen um zu lernen. Es ist eigentlich mein erstes "selbst" erstelltes Makro und vor einem Monat habe ich davon nur Bahnhof verstanden. Von daher bin froh um konstruktive Kritik.

Habe noch die Blöcke angehängt.

------------------
Bis demnächst!

Hans Meiser

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

Jörg W
Mitglied
Maschinenbautechniker und CAD Admin


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

Beiträge: 1232
Registriert: 12.07.2001

Win 10 64bit
SW2018 SP5
HP z240
16GB Ram
Quadro P1000

erstellt am: 10. Okt. 2007 12:08    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 weinel 10 Unities + Antwort hilfreich

Hallo Hans,

Habe leider noch keine Zeit gehabt um mir das Makro anzuschauen.
Aber im voraus schon ein Dankeschön.
Rückmeldung kommt etwas später


PS:
Darf Stefan das Makro und die Blöcke in die Makrotauschbörse der SWx Hilfeseite aufnehmen? 

------------------
Pfürti Jörg W 

www.hydac.com / Meine Homepage / Waleska Webdesign / CAD.de Hilfeseite / Forenstammtisch Saar

Member of CAD.de BOINC Team

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

Hans Meiser
Mitglied
CAD/PLM-Supporter / CSWP


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

Beiträge: 84
Registriert: 09.05.2003

SolidWorks 2009 SP5.1 (produktiv)
Aigle 5.1 (PLM)
proAlpha (ERP)
WinXP x64 Prof. SP.2.0
HP XW 4400 8GB RAM
FX 3500 Treiber 6.14.10.9136

erstellt am: 10. Okt. 2007 12:47    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 weinel 10 Unities + Antwort hilfreich

Hallo Jörg,

falls Stefan meinen Spagetti-Code brauchen kann, darf er das natürlich aufnehmen und die Blöcke sind sicher auch kein Staatsgeheimnis. Ansonsten müsste man die kurze Version von Klaus noch näher ansehen, aber dafür habe ich zur Zeit nur sehr wenig Zeit.

------------------
Bis demnächst!

Hans Meiser

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 10. Okt. 2007 14:12    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 weinel 10 Unities + Antwort hilfreich


BloeckeEinfuegen-kurz-neu.zip

 
So, dank der nun vorhandenen Textblöcke hab ichs direkt mal testen können..und natürlich nen groben Schnitzer gefunden. Aber der ist behoben, mit dieser Version funktionierts (bei mir).

Allerdings fehlen noch die Textblöcke für die Farben, aber die kann sich ja jeder selber schnitzen.

Ach, mir ist an deinem Code noch was aufgefallen, du hast da mehrmals so Stellen wie

Code:
If obGasnitrieren Or obOxy90 Or obNiRo = True Then      'Kontrolle ob ein Thermischer Block ausgewählt ist
            ThermischGesetzt = 1
        Else: ThermischGesetzt = 0
    End If

Nach dem "Else" darfst du nicht in der gleichen Zeile weiter machen, da setzt VBA automatisch einen : dahinter (keine Ahnung was das soll), ich hab jetzt nicht getestet, ob das trotzdem richtig ausgewertet wird, wäre aber komisch. Mit dem Doppelpunkt wird eine Sprungmarke für den Goto-Befehl markiert. Sollte man aber vermeiden, sonst wird's wirklich Spagetti-Code.

Richtiger wäre
Code:
If obGasnitrieren Or obOxy90 Or obNiRo = True Then      'Kontrolle ob ein Thermischer Block ausgewählt ist
    ThermischGesetzt = 1
Else
    ThermischGesetzt = 0
End If

Nächster Punkt, der mir gerade aufgefallen ist:

Code:
If obGasnitrieren Or obOxy90 Or obNiRo = True Then
...
Das "= True" bezieht sich in diesem Fall nur auf das obNiRo. Und ist eigentlich überflüssig, da die Controls selber True oder False zurückgeben, es würde reichen
Code:
If obGasnitrieren Or obOxy90 Or obNiRo Then
...
, das hätte den gleichen Effekt.
Ganz richtig ist das aber auch nicht, denn eigentlich fragst du hier, ob das Objekt vom Typ OptionButton dir True oder False liefert, tatsächlich steckt das aber in der Objekt-Eigenschaft "Value" dieses Objekttyps drin. Es funktioniert zwar, aber nur weil VBA hier beide Augen zudrückt.
Ganz eigentlich müsste das heißen
Code:

If obGasnitrieren.value Or obOxy90.value Or obNiRo.value Then
...

Übrigens: da es ja funktioniert, war ich zu faul, das in dem Makro überall zu korrigieren 

------------------
Klaus

    www.al-ko.com | mein Gästebuch | privat...

[Diese Nachricht wurde von KMassler am 10. Okt. 2007 editiert.]

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

Jörg W
Mitglied
Maschinenbautechniker und CAD Admin


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

Beiträge: 1232
Registriert: 12.07.2001

Win 10 64bit
SW2018 SP5
HP z240
16GB Ram
Quadro P1000

erstellt am: 10. Okt. 2007 15:05    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 weinel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von KMassler:

Übrigens: da es ja funktioniert, war ich zu faul, das in dem Makro überall zu korrigieren  



Wäre aber schön gewesen
Fauler Hund    

------------------
Pfürti Jörg W 

www.hydac.com / Meine Homepage / Waleska Webdesign / CAD.de Hilfeseite / Forenstammtisch Saar

Member of CAD.de BOINC Team

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 10. Okt. 2007 15:24    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 weinel 10 Unities + Antwort hilfreich

Ich wollte dir doch noch was übrig lassen 

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

Baumjäger
Mitglied
CAD/PDM Administrator


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

Beiträge: 339
Registriert: 21.06.2006

SW2017 - S5.0
AutoCAD Mechanical 2018
Win10
Intel Xeon E3-1240 V2 3,4GHz
16GB RAM
NVIDIA Quadro 4000

erstellt am: 07. Apr. 2008 09:12    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 weinel 10 Unities + Antwort hilfreich


Block_einfuegen.zip

 
Hallo,

Erstmal ein verspätetes Danke für das Makro, jetzt kann ich endlich auch Blöcke einfügen    

Für alle blutigen Anfänger (wie z.B. ich) hab ich das Makro mal auf minimal heruntergeschreddert. Also keine Fehlerabfragen mehr und nur einen einzigen Block einfügen.

viele Grüße Andy

[Diese Nachricht wurde von Baumjäger am 07. Apr. 2008 editiert.]

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

swx-cad-nutzer
Mitglied
Konstr


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

Beiträge: 411
Registriert: 15.06.2011

SWX 2023
SP 4.0
64 bit

erstellt am: 28. Nov. 2018 07: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 weinel 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!


Hallo Zusammen, Leider komme ich damit nicht weiter.

Ich würde gernee einen Einizigen Block per Makro einfügen, welcher abgelegt in der konstruktionsbibliothek liegt.

Dieser soll Abhängig von der Blattgrösse rechts unten im Schriftfeld (nachplaziert in vorhandenen Zeichnungen) platziert werden.

Die Makroaufzeichnung kannst glatt vergessen.
Danke!

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

erstellt am: 28. Nov. 2018 08: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 so auf die Schnelle diesen Hinweis:

Ein Block wird normalerweise relativ zu einer Zeichnungsansicht eingefügt. Vielleicht liegt da das Problem?

------------------
Gruß weinel

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

weinel
Mitglied



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

Beiträge: 464
Registriert: 04.09.2002

SolidWorks 2016 SP4.0
M6800 K3100 Win7 64bit
Eplan P8 2.5
ARAS

erstellt am: 28. Nov. 2018 08: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 so auf die Schnelle diesen Hinweis:

Ein Block wird normalerweise relativ zu einer Zeichnungsansicht eingefügt. Vielleicht liegt da das Problem?

------------------
Gruß weinel

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

swx-cad-nutzer
Mitglied
Konstr


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

Beiträge: 411
Registriert: 15.06.2011

SWX 2023
SP 4.0
64 bit

erstellt am: 28. Nov. 2018 08: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 Nur für weinel 10 Unities + Antwort hilfreich

Danke,
Das kann schon sein, momentan landet der Block über mein Makro (aufgezeichnet) auf links unten (0,0)

besser wäre:

A4 Blatt X= 155/ Y= 22
A3 Blatt X= 360/ Y= 28
A2 Blatt X= 535/ Y= 28
A1 Blatt X= 780/ Y= 28
A0 Blatt X= 1130/ Y= 28

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 28. Nov. 2018 09:21    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 weinel 10 Unities + Antwort hilfreich

Du kannst mit GetProperties2 die Blattgrösse herausfinden und den Einfügepunkt danach setzten.
Hier einmal der Code aus meinem ergänzten Makro. Die Koordinaten des Punktes muss du noch nach deinen Bedürfnissen anpassen.
Code:
Option Explicit

Dim swApp                  As SldWorks.SldWorks
Dim swModel                As SldWorks.ModelDoc2
Dim swDraw                  As SldWorks.DrawingDoc
Dim swSheet                As SldWorks.Sheet
Dim swView                  As SldWorks.View
Dim swSketchBlockDef        As SldWorks.SketchBlockDefinition
Dim swMathUtil              As SldWorks.MathUtility
Dim swMathPoint            As SldWorks.MathPoint
Dim nPt(2)                  As Double
Dim vPt                    As Variant
Dim SheetProps              As Variant
Dim PaperSize              As Single
Dim Massstab                As Single

Const BlockPfad As String = "S:\Engineering\SWX_TZTW\SWX-Blöcke\STB-Freigabe.SLDBLK"

Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Kein Dokument geöffnet!"
        End
    End If
   
' Prüfen, ob Zeichnung geöffnet ist
    If swModel.GetType <> swDocDRAWING Then
        MsgBox "Aktives Dokument ist keine Zeichnung!"
        End
    End If
   
    Set swDraw = swModel
    Set swSheet = swDraw.GetCurrentSheet
    swSheet.FocusLocked = True
   
    SheetProps = swSheet.GetProperties2  'see swDwgPaperSizes_e for values
' what is the 5th (the width)
    PaperSize = SheetProps(5) * 1000 '/ 25.4
    Massstab = SheetProps(2) / SheetProps(3)
' Define an insertion point
    'nPt(0) = 60# / 1000# / Massstab
    nPt(1) = 48# / 1000# / Massstab
    nPt(2) = 0#
   
    Select Case PaperSize
    Case 210
        nPt(0) = 202# / 1000# / Massstab
        nPt(1) = 80# / 1000# / Massstab
    Case 297
        nPt(0) = 100.4 / 1000# / Massstab
        nPt(1) = 12# / 1000# / Massstab
    Case 420
        nPt(0) = 412# / 1000# / Massstab
    Case 594
        nPt(0) = 586 / 1000# / Massstab
    Case 841
        nPt(0) = 833# / 1000# / Massstab
    Case 1189
        nPt(0) = 1181 / 1000# / Massstab
    Case Else
        MsgBox "Aktuelles Blatt hat kein Standardformat!!!", vbOKOnly, "Blattformat Fehler"
        Exit Sub
    End Select
   
    vPt = nPt
    Set swMathUtil = swApp.GetMathUtility
    Set swMathPoint = swMathUtil.CreatePoint(vPt)
   
' Insert an instance of the block definition
    Set swSketchBlockDef = swDraw.SketchManager.MakeSketchBlockFromFile(swMathPoint, BlockPfad, True, 1, 0)
   
    swSheet.FocusLocked = False
    swDraw.ClearSelection2 True
   
End Sub


------------------
21 ist nur die halbe Antwort.

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 28. Nov. 2018 09:23    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 weinel 10 Unities + Antwort hilfreich

Code:

Dim swSheet        As SldWorks.Sheet
Dim swMathPoint    As SldWorks.MathPoint
Dim swMathUtility  As SldWorks.MathUtility
Dim pointsArray(2)  As Double

Sub main()

    Set swApp = Application.SldWorks
   
    Set Part = swApp.ActiveDoc
   
    If Part Is Nothing Then
        MsgBox "Keine Zeichnung geöffnet!"
        End
    Else
        If Part.GetType <> swDocDRAWING Then
            MsgBox "Funktioniert nur in Zeichnungen!", vbCritical
            End
        End If
    End If
   
    Set swSheet = Part.GetCurrentSheet
     
    vSheetProps = swSheet.GetProperties
    vMaßstab = vSheetProps(3) / vSheetProps(2)
   
    Set swMathUtility = swApp.GetMathUtility
   
    Select Case vSheetProps(5)
        Case 1.189  'A0
            pointsArray(0) = (vSheetProps(5) - 0.19606) * vMaßstab 'X
            pointsArray(1) = 0.01428 * vMaßstab 'Y
        Case 0.841  'A1
            pointsArray(0) = (vSheetProps(5) - 0.19713) * vMaßstab
            pointsArray(1) = 0.01766 * vMaßstab
        Case 0.594  'A2
            pointsArray(0) = (vSheetProps(5) - 0.20122) * vMaßstab
            pointsArray(1) = 0.01468 * vMaßstab
        Case 0.42  'A3
            pointsArray(0) = (vSheetProps(5) - 0.19473) * vMaßstab
            pointsArray(1) = 0.01276 * vMaßstab
        Case 0.21  'A4
            pointsArray(0) = (vSheetProps(5) - 0.00508) * vMaßstab
            pointsArray(1) = 0.075514 * vMaßstab
    End Select
   
    pointsArray(2) = 0 'Z
       
    pointsArr = pointsArray
   
    Set swMathPoint = swMathUtility.CreatePoint(pointsArr)
   
    Vorlage = "D:\ ... .SLDBLK"
   
    Set myBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile(swMathPoint, Vorlage, False, 1, 0)

End Sub


Der Block aus dem Makro wird hier bei uns links neben das Schriftfeld geklatscht, für deinen Fall musst du halt die "Korrekturwerte" (0.19606 etc.) entsprechend anpassen. Am einfachsten geht das IMHO, wenn man das Makro für jede Blattgröße laufen lässt, den Unterschied auf der Zeichnung ausmisst und im Makro korrigiert.

Gruß, Jens

------------------
CSWE =)

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 28. Nov. 2018 11:02    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 weinel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von SWX-cad-nutzer:
... abhängig von der Blattgrösse rechts unten im Schriftfeld (nachplaziert in vorhandenen Zeichnungen) platziert werden.

Hallo,

ist das evtl ein Fall für ein "Blattformat neu laden"?

Gruß, Christian

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

swx-cad-nutzer
Mitglied
Konstr


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

Beiträge: 411
Registriert: 15.06.2011

SWX 2023
SP 4.0
64 bit

erstellt am: 28. Nov. 2018 12:51    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 weinel 10 Unities + Antwort hilfreich

Danke euch!

Henry hat mich zur lösung gebracht! Super

Die Lösung von CAD-Maler hab ich dann gar nicht mehr probiert! Danke Dir auch!

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)2024 CAD.de | Impressum | Datenschutz