Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API ListBox/Dateipfad und txt Datei füllen

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
  
PLM TechnologieForum Hannover
Autor Thema:  API ListBox/Dateipfad und txt Datei füllen (3586 mal gelesen)
Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 10. Aug. 2018 15: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


Eigenschaften20180810CADDE.swp.txt


Lieferanten.txt

 
Hallo zusammen,

vorweg erst einmal bitte zerreißt das Makro nicht in der Luft, ich habe aus verschiedensten Makros Code übernommen und zusammengefügt, ggf. ergänzt. Daher kann man einiges bestimmt besser/kürzer schreiben aber so wie es ist funktioniert es zumindest.

Nun zu meinen eigentlichen Problemen. Ich bin momentan daran ein Schriftfeldmakro zu erstellen und bin auch schon recht weit gekommen.
Allerdings habe ich folgende Probleme, und ich hoffe ihr könnt mir helfen oder zumindest ansätze anbieten:

1. Einträge aus ListBox wieder in .txt Datei schreiben
Ich habe je eine ListBox unter „Auswahleigenschaften editieren“ > „Liste laden“. Dort werden alle Einträge aufgelistet, die in einer extra .txt Datei liegen. Mit dem Button „löschen“ kann ich auch einen Eintrag aus der ListBox entfernen, allerdings bekomme ich es nicht wieder hin die ListBox in die Textdatei zu schreiben, sodass der Eintrag gelöscht wurde.

2. Variabler Pfad für die .txt Dateien
Wie oben schon erwähnt greift das Makro auf einige .txt Dateien zu. Momentan habe ich den Pfad fix bei jedem Aufruf vergeben. Ich hätte aber gerne den Pfad einmal global angelegt, sodass ich später nur noch einen Variablen Aufruf + „\NamederTexdatei“ machen muss. Habe ich auch schon versucht, allerdings zeigt er immer an das der Pfad „leer“ ist.
Durch den variablen Pfad möchte ich später den Ordner mit dem Makro und den .txt Dateien verschieben können wie ich möchte ohne den Pfad überall neu definieren zu müssen.

3. Kalender optisch anpassen
Ich habe aus dem Englischen Forum, leider weis ich den Beitrag nichtmehr, einen Code für einen Kalender. Diesen habe ich auch erfolgreich eingefügt, allerdings sind mir die beiden oberen Textboxen zu klein. Wie kann ich diese verschieben + vergrößern. Bzw. wie kann ich allgemein die Optik des Kalenders anpassen? Muss ich dazu in cCalender alle einzelnen werte bearbeiten?
Der Kalender wird aufgerufen indem man in der UserForm „EigenschaftenUF“ in die TextBox von z.B. „Gezeichnet am“ klickt.


Anbei noch das Makro und eine .txt Datei, es dürfen gerne weiter Verbesserungsvorschläge gemacht werden wenn jemand Lust hat drüber zu schauen 
Danke jetzt schon einmal für eure Mühe!

Gruß

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: 10. Aug. 2018 17: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 Lunik 10 Unities + Antwort hilfreich

Hallo,

1 - ähm ... schau mal was freefile macht - bestimmt nicht 'Textdatei leeren, wie du dahinter geschrieben hast. 
    und append hängt immer hinten dran, wenn ich es recht in Erinnerung habe.
    Wie wäre es mit "file löschen" und einfach ein neues anlegen?

2 - hast du mal GetCurrentMacroPathFolder probiert?
    damit könntest du eine ini-Datei oder andere Dateien im gleichen Ordner ansprechen wie das Makro liegt.

3 - weiß auch nicht

Gruß, Christian

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 13. Aug. 2018 07:11    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 Lunik 10 Unities + Antwort hilfreich

Hallo,

zu 1.
wie Christian schon geschrieben hat.
Wenn Du einen Text-Datei als "Konfigurations-Datei" hast und Einträge löschen möchtest
bleibt Dir nur, die komplette Datei neu zu erstellen.
Alternativen wären z.B: eine Excel-Datei, eine XML-Datei oder eine Datenbank zu verwenden
das ist dann allerdings etwas aufwendiger zu programmieren

zu 2.
wie Christian geschrieben hat
GetCurrentMacroPathFolder

zu 3.
geht es darum, das Erstellungsdatum der Zeichnung einzutragen?
Wenn ja, dann lässt sich das ja auch autom. ermitteln
z.B.:
Dim oFSO As Object
Dim oF As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oF = oFSO.GetFile(Dateiname inkl. Pfad)
Debug.Print oF.DateCreated
Debug.Print oF.DateLastModified


------------------
Grüße
Heinz

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 13. Aug. 2018 07:33    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 Lunik 10 Unities + Antwort hilfreich

Hallo,

zu 1.
Ich habe mal google bemüht und folgendes gefunden zum löschen von Einträgen in Text-Datein. Hier entlang
Ich bevorzuge für sollche Aufgaben aber das CSV Format, da es im Gegensatz zu Excel nicht geöffnet werden muss um es zu bearbeiten.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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: 13. Aug. 2018 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 Lunik 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bk.sc:
... Ich bevorzuge für sollche Aufgaben aber das CSV Format, da es im Gegensatz zu Excel nicht geöffnet werden muss um es zu bearbeiten.
...

It's Magic ...
du löscht darin eine Zeile ohne die Datei zu öffnen? 


Gruß, Christian

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

Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 204
Registriert: 22.03.2015

Dell 3650
Intel I7 11700k
32 GB RAM
Nvidia RTX A4000 16GB
Win 10 22H2 64-bit
SolidWorks 2022SP5
QuickPress 6.3.3
PortaX 2.27
SAP ERP 6.0

erstellt am: 13. Aug. 2018 17: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 Lunik 10 Unities + Antwort hilfreich

Hallo Lunik,
zu 1.
Die Problematik wegen der Listbox habe ich ähnlich, allerdings gebe ich vor was die Kollegen eintragen können. Die Kollegen können allerdings nicht selbst die Vorlagen ändern.
Gesteuert wird das bei mir über eine einfache Text Datei. Bei Bedarf könnte man diese auch jedesmal neu erstellen wenn sich etwas ändert.
Ich habe das bei mir bei einer anderen Funktion so gelöst:
Code:
Open Replace(swApp.GetCurrentMacroPathName, "Dateieigenschaften_füllen.swp", "Fehlende Bezeichnung.txt") For Append As 1
Debug.Print cmdMARA_TEXT_DE.Text, ";", cmdMARA_TEXT_EN.Text
Print #1, cmdMARA_TEXT_DE.Text, ";", cmdMARA_TEXT_EN.Text

Das ganze hängt an die Text Datei einfach eine Zeile dran. Gesteuert wird das Verhalten über "for Append" (Wie Christian schon erwähnt hat).

zu 2. Da mache ich es in jedem Makro so wie es Christian geschrieben ist. Vorteil dabei ist, man kann das Makro(inkl. Text Dateien) so viel verschieben wie man will und es funktioniert immer.

zu 3.
Zum Kalender an sich habe ich keine Idee.
Bei uns ist es so das einfach das aktuelle Datum eingetragen wird, und sich keiner Gedanken um ein paar Stunden hin oder her macht.

Gruß Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 13. Aug. 2018 18:14    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 Lunik 10 Unities + Antwort hilfreich

Hallo Bernd,

das Beispiel auf das Du hier verlinkst, erstellt aber auch nur die Datei einfach neu

Zitat:
Original erstellt von bk.sc:
Hallo,

zu 1.
Ich habe mal google bemüht und folgendes gefunden zum löschen von Einträgen in Text-Datein. Hier entlang


------------------
Grüße
Heinz

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 14. Aug. 2018 07:33    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
It's Magic ...
du löscht darin eine Zeile ohne die Datei zu öffnen?

Zitat:
das Beispiel auf das Du hier verlinkst, erstellt aber auch nur die Datei einfach neu

Morgen Christian und Heinz,

ok hab eben mal in die Codes geschaut und die Datein werden ja doch entweder geöffnet oder ersetzt, nur eben nicht sichtbar. 

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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: 14. Aug. 2018 09:43    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bk.sc:
... entweder geöffnet oder ersetzt, nur eben nicht sichtbar.  

Hallo Bernd,

der große Vorteil ist IMHO, dass sie direkt von VBA geöffnet werden, anstatt erst ein Application-Objekt aufzumachen (Excel) und dann mit den Excel-Funktionen da drin herumzumachen.
so hatte ich deine Bemerkung zumindest verstanden, aber sie war halt anders formuliert 

Das Beispiel mit dem komplett einlesen und split find ich persönlich sehr schön! Danke dafür 

Gruß, Christian

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 27. Aug. 2018 07: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

Hallo zusammen,

danke für eure Antworten. Erst einmal Entschuldigung dass ich mich nicht gemeldet habe, ich war im Urlaub und hatte keinen Zugang.
Ich werde eure Vorschläge mal anschauen und versuchen umzusetzen.

Bezüglich Punkt 3. meinte ich eigentlich nur, das ich die die Optik anpassen kann, da mir die Comboboxen oben rechts zu klein sind.

Gruß

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 27. Aug. 2018 14: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

Hallo zusammen,

habe nun als erstes Versucht den Dateipfad auszulesen, und mir Testweise in einer MgsBox anzeigen zu lassen. Leider führt GetCurrentMacroPathFolder zu einer leeren MsgBox... Habe es auch mal an "richtiger" Stelle eingesetzt, leider ohne Erfolg. Wo liegt mein Fehler?

Zu meinem Punkt 1, der ListBox habe ich immer noch keine Lösung. Ich habe es mittlerweile hinbekommen die Datei zu löschen und eine neue zu erstellen, allerdings bekomme ich die Einträge aus der ListBox nicht in die .txt Datei geschrieben. Es schreibt allerhöchstens den ersten Eintrag hinein...
Jemand eine Lösung für mich, oder zumindest einen Vorschlag?

Bin momentan ein wenig am Verzweifeln da ich fast fertig bin aber eben diese Kleinigkeiten nicht funktionieren...

Gruß

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: 27. Aug. 2018 16:17    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Lunik:
Zu meinem Punkt 1, der ListBox habe ich immer noch keine Lösung. Ich habe es mittlerweile hinbekommen die Datei zu löschen und eine neue zu erstellen, allerdings bekomme ich die Einträge aus der ListBox nicht in die .txt Datei geschrieben. Es schreibt allerhöchstens den ersten Eintrag hinein...
Jemand eine Lösung für mich, oder zumindest einen Vorschlag?

https://msdn.microsoft.com/de-de/VBA/Language-Reference-VBA/articles/printstatement

Statt des mehrmaligen Print #1 einfach eine for-Schleife einbauen, die durch alle Elemente der Listbox geht und diese als Zeile in die txt schreibt:

Code:

Open "TESTFILE" For Output As #1 ' Open file for output. TESTFILE = path   
For i = 0 To listbox.count
  Print #1, listbox.listindex(i)  ' Print text to file.
Next i
Close #1

(Das wirst du umschreiben müssen, ist aus dem Gedächtnis geschrieben, aber die Richtung sollte klar sein...)

Der Output-Befehl fängt jedesmal bei der ersten Zeile an. Wenn du etwas "unten" an die txt anhängen willst, muss du stattdessen "append" verwenden.

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. Aug. 2018 10:03    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
... Wo liegt mein Fehler? ...

ganz klar im Makro ... 

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. Aug. 2018 10: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 Lunik 10 Unities + Antwort hilfreich

OK, mal ein bisschen detaillierter (soweit du das möglich machst)
Zitat:
... habe nun als erstes Versucht den Dateipfad auszulesen, und mir Testweise in einer MgsBox anzeigen zu lassen. Leider führt GetCurrentMacroPathFolder zu einer leeren MsgBox...

fast guter Ansatz - aber IMHO sind da 2 Schritte notwendig.

1)
was sagt denn "debug.print swapp.getcurrentmacropathname" ? oder mach einen Stop an der Stelle und schau mit dem Mauszeiger, was es zurückgeliefert hat.

2)
wie setzt du es in deine Msgbox ?

Zitat:
... Habe es auch mal an "richtiger" Stelle eingesetzt, ...

 
"richtig" - dein richtig? mein richtig? oder das von SolidWorks?

Gruß, Christian

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 28. Aug. 2018 15: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


Printfehler.png

 
Hallo zusammen,
danke für eure Hilfe.

die For Schleife hatte ich schon mal drin, bleibe aber jedes Mal am Print hängen... (siehe Bild1)
Der Code dazu wäre:

'____________________Textdatei löschen______________________________
Kill "P:\solidworks\Vorlagen\Makros\Schriftfeld\Auswahldateien\Lieferanten.txt" 'Textdatei löschen
   
Open Dateipfad For Append As #1
For i = 0 To LBLF.ListCount 'LBLF.ListCount - 1          'für jede Zeile der Listbox
      ' LBLF.Selected(i) = True

'____________________Lieferanten aus Liste eintragen______________________________
Print #1, LBLF.ListIndex(i)
'Print #1, Chr(10) & txt
Next i
Close #1


Zum Thema Pfad, tut mir leid dass ich euch die Mühe gemacht habe. Ich habe mich immer gewundert warum er es nicht nimmt, dabei hab ich einfach nur swApp vergessen hinzuschreiben  .
Dank Christian hab ich mir nochmal alles genau angeschaut und jetzt geht es, danke!

Wenn jetzt das mit der ListBox noch funktionieren würde, wäre meine Woche gerettet!

Gruß

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

Spirou85
Mitglied
Konstruktuer und CAD-Betreuer


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

Beiträge: 70
Registriert: 01.12.2014

HP ZBook 15 G5
Intel Xeon 2,9 GHz - 32GB Ram
NVIDIA Quadro P2000M
Windows 10 Pro 64Bit Version 1809
Build 17763.1098
SWX2020-64Bit-SP1.0
MaxxDB 2020 SP0.06
DraftSight Enterprise 2019 x64 SP3
3DCONNEXION SpaceMouse Enterprise mit CadMouse

erstellt am: 29. Aug. 2018 15:25    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 Lunik 10 Unities + Antwort hilfreich

Hallo Lunik,

Auf die einzelnen Listboxelemente kannst Du über die List-Eigenschaft zugreifen.
Ändere Deinen Code in folgendes:

Code:

For i=0 to LBLF.ListCount - 1
    Print #1, LBLF.List (i, 0)
Next i
Close #1

Einlesen am besten mit Line Input, so musst Du die chr(10) nicht beachten.

------------------
Viele Grüße aus Brackenheim

Lars Pauly

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 30. Aug. 2018 12: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 Lars,

habe es gerade getestet und es funktioniert, vielen Dank dafür!
Allerdings verstehe ich nicht ganz den Unterschied, was macht dein Code großartig anders als meiner?  Wenn du mir das erkären könntest wärs echt nett.

Gruß Lukas

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

Spirou85
Mitglied
Konstruktuer und CAD-Betreuer


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

Beiträge: 70
Registriert: 01.12.2014

HP ZBook 15 G5
Intel Xeon 2,9 GHz - 32GB Ram
NVIDIA Quadro P2000M
Windows 10 Pro 64Bit Version 1809
Build 17763.1098
SWX2020-64Bit-SP1.0
MaxxDB 2020 SP0.06
DraftSight Enterprise 2019 x64 SP3
3DCONNEXION SpaceMouse Enterprise mit CadMouse

erstellt am: 30. Aug. 2018 13:27    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 Lunik 10 Unities + Antwort hilfreich

Bei der Hilfe zu der ".ListIndex"-Eigenschaft wird nicht erwähnt, dass man auf die Listenelemente zugreifen kann, sondern das hier der Index des aktuell ausgewählten Elemntes abgefragt oder gesetzt werden kann.
Verwendet man im Code ".ListIndex(i)" erhält man einen Lazfzeitfehler 13. Diese Eigenschaft gibt es nicht.
Zum zugreifen auf die Listenelemente ist die ".List(i)"-Eigenschaft da.

------------------
Viele Grüße aus Brackenheim

Lars Pauly

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 30. Aug. 2018 15:19    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

Danke, jetzt hab ichs verstanden.

Gruß Lukas

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 05. Sep. 2018 13: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

Noch einmal Hallo zusammen,

ich habe endlich mein Makro fertig, und es funktioniert so wie ich mir das vorstelle, naja fast.
Es ist lediglich ein Schönheitsfehler allerdings wäre es gut wenn das auch noch behoben werden könnte.
Und zwar geht es um folgendes:
Wenn ich die Dateieigenschaften per Makro schreibe und dann die Registrierkarte Benutzerdefinierte Eigenschaften aufrufe sind diese leer. Man muss erst einmal unten auf weitere Eigenschaften, das sich öffnende Fenster wieder schließen, um dann dort auch die eingetragenen Werte zu sehen.
Gibt es eine Möglichkeit dies per Makro zu machen oder eine Einstellung dass es sich automatisch aktualisiert?

Grüße Lukas

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 05. Sep. 2018 13:48    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 Lunik 10 Unities + Antwort hilfreich

Bit welchem Befehl erstellt Du die Eigenschaften?
Erstellst Du sie in einem Teil oder in einer Zeichnung?
Wenn in einem Teil, erstellst sie auch in der richtigen Konfiguration?

------------------
Grüße
Heinz

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 05. Sep. 2018 13: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

Ich schreibe die Eigenschaften mit:
Model.CustomInfo2(glbConfName, "Eigenschaftsname") = Eingabefeld.text
dummy = Model.AddCustomInfo3(glbConfName, "Eigenschaftsname", swCustomInfoText, Eingabefeld.text)

In Teilen und Baugruppen, nicht in Zeichnungen.

Es sind keine Konfigurationsspezifischen Eigenschaften sondern Benutzerdefinierte. Und ja sie werden bei den Benutzerdefierten hineingeschrieben.

Grüße Lukas

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: 05. Sep. 2018 14:01    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 Lunik 10 Unities + Antwort hilfreich

Hallo Lukas

Versuch es mit einem swModel.ForceRebuild3 True am Ende des Makros.

Property update doesn't show in custom properties tab until after rebuild

Gruss Andreas

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

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 05. Sep. 2018 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 Lunik 10 Unities + Antwort hilfreich


AddCustomInfo3.PNG

 
Hallo Lukas,

lt. Onlinehilfe (SWX 2016) ist "AddCustomInfo3" veraltet! siehe Bild
um auf die Eigenschaften zuzugreifen sollte "CustomPropertyManager" verwendet werden.
Und damit klappt es auch ohne Rebuild, wie im Beispiel unten

ich habe die Erfahrung gemacht, dass
  - aufgekündigte Funktionen, besser nicht mehr genutzt werden sollten
  - wenn man Codeschnipsel aus dem WWW kopiert und diese nicht funktionieren,
    man mal in der Online Hilfe nachschauen sollte


Sub main()
  Dim swApp        As SldWorks.SldWorks
  Dim swModel      As ModelDoc2
  Dim exten        As ModelDocExtension
  Dim propmngr      As CustomPropertyManager

  Set swApp = Application.SldWorks
  Set swModel = swApp.ActiveDoc
  Set exten = swModel.Extension
 
  Set propmngr = exten.CustomPropertyManager("")

  ergebnis = propmngr.Add3("Feldname", swCustomInfoText, "Feldwert", swCustomPropertyOnlyIfNew)
  If ergebnis <> 0 Then
    ergebnis = propmngr.Set2("Feldname", "Feldwert")
    If ergebnis <> 0 Then
      MsgBox "Fehler beim erstellen der Eigenschaft", vbOKOnly, "Meldung"
    End If
  End If
End Sub

------------------
Grüße
Heinz

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 05. Sep. 2018 16:25    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

Danke für eure Antworten!

Habe beide eben ausprobiert, und die von Andres hat funktioniert.

Die von Heinz habe ich auch mal Testweise eingebunden und per Button eine Eigenschaft mit der neuen Funktion schreiben lassen. Geschrieben hat er sie auch, aber leider zeigt er sie mir auch erst nach öffnen des Dateiinformationsfensters an.


------------------
Grüße Lukas

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 06. Sep. 2018 07: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 Lunik 10 Unities + Antwort hilfreich

Hallo Lukas,

sorry da habe ich Dich nicht richtig verstanden.
Du hast recht, die Werte in der Registerkarte werden, nur nach einem Rebuild aktualisiert.

------------------
Grüße
Heinz

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

Lunik
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 05.07.2017

Hardware
-Intel Xeon W2123
-Nvidia Quadro P2000
-32GB RAM
---------------------
Software
-Windows 10 Professional 64bit
-SolidWorks 2018 SP5.0
-Office 2010
---------------------
Sonstiges
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 06. Sep. 2018 11: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

Hallo Heinz,

kein Probelem!
Das "AddCustomInfo3" veraltet ist wusste ich auch nicht, daher hast du mir trotzdem geholfen 

------------------
Grüße Lukas

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