Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Mittels Makro ein Text einfügen

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
  
SOLIDWORKS NEXT | Episode 3: Von CAD Zu Code - Nahtlose Konstruktion und virtuelle Roboterprogrammierung, ein Webinar am 15.09.2026
Autor Thema:  Mittels Makro ein Text einfügen (6348 mal gelesen)
hhjung
Mitglied
Technischer Zeichner


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

Beiträge: 17
Registriert: 14.07.2003

SolidWorks 2010 x64 Edition SP5.0

erstellt am: 17. Okt. 2009 13:42    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 liebe Gemeinde,

für unsere Zeichnungserstellung in Solidworks nutzen wir diverse Standardtexte, die wir immer wieder in Zeichnungen einfügen müssen. Diese Texte liegen in einer großen Excel-Tabelle vor. Diverse Texte werden dort ausgewählt, zusammengetragen und mit einem Makro inkl. aller Formatierungen in die Zwischenablage kopiert (Stichwort: Clipboard).

Folgende Aufgabe liegt nun vor mir:
Ich versuche gerade ein Makro zu erstellen, mit dem ich einen beliebigen Text aus der Zwischenablage in eine Solidworks Zeichnung einfügen kann.

Folgende Lösung schwebt mir vor:
Automatisch einen leeren Bezugshinweis öffnen, auf der Zeichnung platzieren und den Inhalt der Zwischenablage dort hinein kopieren lassen.

Problem:
Wie bekomme ich den Inhalt der Zwischenablage in den geöffneten und platzierten Bezugshinweis?
Irgendwie vermisse ich eine Clipboard-Funktion im Solidworks VisualBasic-Editor.

Kann mir jemand von euch behilflich sein?

Viele Grüße,
Björn

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

myca
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 4383
Registriert: 15.06.2007

SW 2007
SW 2018
2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64
3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro

erstellt am: 17. Okt. 2009 14:22    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 hhjung 10 Unities + Antwort hilfreich

Hi,

strg-V schon probiert - allerdings ohne Formatierung...
Und das wird eher (Formatierung) schwieriger als das Einfügen aleine.

G.  thomas

------------------

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

hhjung
Mitglied
Technischer Zeichner


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

Beiträge: 17
Registriert: 14.07.2003

SolidWorks 2010 x64 Edition SP5.0

erstellt am: 17. Okt. 2009 14: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 Thomas,

klar haben wir das schon gemacht. Das war ja die bisherige Prozedur. Da wir aber eine Arbeitserleichterung brauchen, wäre hier ein Makro deutlich sinnvoller und auch schneller.

Zum Verständnis warum es mittels des klassischen copy/paste zu aufwendig ist:
Für copy/paste müssen wir für jeden einzelnen benötigten Textblock zwischen Excel und Solidworks wechseln. Das möchten wir vermeiden.

Das Problem ist, dass wir viele viele Textblöcke in einer Exceltabelle haben. Wir benötigen aber nicht alle auf einmal, sondern nur ausgewählte Textblöcke. Wenn ich diese Textblöcke, die in unterschiedlichen Zellen liegen, in Excel markiere und per copy/paste in Solidworks einfüge, dann sind nicht nur die in Excel markierten Zellen eingefügt, sondern noch weitere Zellen mit dabei, die nicht benötigt werden. Beispiel gefällig  ?

In den Zellen A1 bis A5 sind Texte hinterlegt. Ich benötige aber nur die Texte aus den Zellen A2 und A4. Diese markiere ich, kopiere sie, springe zu Solidworks und füge sie dort mittels paste wieder ein. Das Ergebnis ist nun, dass nicht nur der benötigte Zelleninhalt von A2 und A4 eingefügt wurde, sondern auch der Zellinhalt von A3, der zwischen den markierten Zellen liegt. Und den Zellinhalt von A3 benötige ich nicht. Daher die einfachere Variante mit einem Makro in Excel.

Und zum Einfügen in Solidworks möchte ich nicht ständig erst manuell eine Bezugshinweis öffnen, platzieren und dann den Text mit paste einfügen, sondern nur einen simplen Button drücken, der mir diese Arbeit abnimmt. Ich hoffe, es war verständlich...

Es geht mir ja letztlich  jetzt nur noch darum, den Inhalt des Zwischenspeichers in Solidworks auszulesen. Alles andere funktioniert ja.

Gruß, Björn

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

T.C.
Mitglied
Konstrukteur


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

Beiträge: 609
Registriert: 15.08.2006

Win7 64 bit
SWX 2017 SP3
Quadro K2200
6 GB Ram
Space Navigator
LG 24" TFT
Daheim:
P4 3.2Ghz / WinXP-Pro SP3
3GB Ram / ATI FireGL V5100
25,6" TFT
SpacePilot
SWX 2012 SP2

erstellt am: 18. Okt. 2009 09: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 Nur für hhjung 10 Unities + Antwort hilfreich

Hallo,
da ich von Markos nichts verstehe, würde ich diese benötigten Texte wohl wirklich als Blöcke abspeichern und in die Zeichnungen einfügen. Auf diese Art und Weise hast du immer nur den gewünschten Text parat. Habe mir meine immer wieder benötigten Hinweise zumindest so hinterlegt. War mir lieber als Excel immer offen oder permanent alles neu einzugeben. Vielleicht ja auch ein Möglichkeit für dich!?

------------------
Gruß Thorsten

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 19. Okt. 2009 07:35    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 hhjung 10 Unities + Antwort hilfreich

Guten Morgen Björn,

ich hab mir mal im vb.net eine Zusatzanwendung geschrieben, die diverse Eintragungen in den Dateieigenschaften vornimmt und dies auch unter Umständen auf die Zeichnung schreibt.
Soweit ich mich noch erinnere, stammt das Beispiel aus der API - Hilfe von SolidWorks, weiß es aber nicht mehr so genau. Du müsstes dir jetzt den Codeschnipsel nur noch auf VBA umschreiben!

Code:
Dim swModel As SldWorks.ModelDoc2
            Dim swDraw As SldWorks.DrawingDoc
            Dim swSheet As SldWorks.Sheet
            Dim Note As SldWorks.Note
            Dim Annotation As SldWorks.Annotation
            Dim Boolstatus As Boolean
            Dim Longstatus As Long
            Dim Textformat As SldWorks.TextFormat
            swModel = SolidWorksInstanzGet.ActiveDoc
            swDraw = swModel
            swDraw.ActivateSheet(Blattname)
            swSheet = swDraw.GetCurrentSheet
            Note = swModel.InsertNote(Text)
            Textformat = Note.GetTextFormat()
            With Textformat
                .Italic = False
                .Underline = False
                .Strikeout = False
                .Bold = False
                .Escapement = 0
                .LineSpacing = 0.001
                .CharHeightInPts = Texthöhe
                .TypeFaceName = "Arial"
                .WidthFactor = 1
                .ObliqueAngle = 0
                .LineLength = 0
                .Vertical = False
                .BackWards = False
                .UpsideDown = False
                .CharSpacingFactor = 1
            End With
            If Not Note Is Nothing Then
                Boolstatus = Note.SetBalloon(0, 0)
                Annotation = Note.GetAnnotation()
                If Not Annotation Is Nothing Then
                    Longstatus = Annotation.SetLeader2(False, 0, True, False, False, False)
                    Boolstatus = Annotation.SetTextFormat(Index, False, Textformat)
                    Boolstatus = Annotation.SetPosition(PositionX, PositionY, 0)
                End If
            End If
            swModel.ClearSelection2(True)

Ich hoffe, es hilft dir weiter!
Achso: Stichworte für die Suche in der API - Hilfe sind: Annotation, InsertNote
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

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

Bernd Knab
Mitglied



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

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 19. Okt. 2009 08:36    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 hhjung 10 Unities + Antwort hilfreich

Hallo Björn,

Daten aus der Zwischenablage holen geht auch direkt im Makro:
http://www.online-excel.de/excel/singsel_vba.php?f=28  :

' **************************************************************
'  Modul:  mdlCopy  Typ = Allgemeines Modul
' **************************************************************

Option Explicit
' ************************************************************
' Benötigt einen Verweis auf die Microsoft Forms 2.0 Objektlibrary
' Peter Haserodt 2004
' ************************************************************

Public Sub TesteEs()
SchreibeTextInDieZwischenablage
MsgBox HoleTextVonZwischenablage
RausMitZwischenAblage
MsgBox HoleTextVonZwischenablage
End Sub

Public Sub SchreibeTextInDieZwischenablage()
Dim oData As New DataObject
Dim sText As String
sText = "Hallo Leute" & vbCrLf & "Neues von Online Excel"
With oData
.SetText sText
.PutInClipboard
End With
End Sub

Public Function HoleTextVonZwischenablage() As String
Dim oData As New DataObject
On Error Resume Next ' Brutal um falsche Formate abzuwürgen, gibt dann einen Leerstring
oData.GetFromClipboard
HoleTextVonZwischenablage = oData.GetText
End Function

Public Sub RausMitZwischenAblage()
Dim oData As New DataObject
oData.SetText ""
oData.PutInClipboard
End Sub


Gruß Bernd

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: 21. Okt. 2009 07:42    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 hhjung 10 Unities + Antwort hilfreich

Hallo Björn,

Schau dir mal diesen Thread an.
Da geht es um das Einfügen verschiedener Blöcke an eine definierte Positionen auf eine Zeichnung.

Vieleicht kannst Du ja damit etwas anfangen  

------------------
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

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