Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Makros in VBA unter C3D2017, Programmabsturz

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 Autodesk Produkte
Autor Thema:  Makros in VBA unter C3D2017, Programmabsturz (1115 mal gelesen)
otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 11. Jul. 2017 14: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

Liebes Forum,

ich versuche meinen von C3D 2013 auf C3D 2017 umzustellen und auch meinen VBA-Code mitzunehemne.
Nun bekomme bei der Zeile

Code:
ThisDrawing.ActiveLayer = ThisDrawing.Layers(strLay)

nicht immer, aber immer wieder die Fehlermeldung

"Fehler beim Einrichten des aktiven Layers"

Der Layer ist an, nicht gefroren, wird nicht neu erstellt.

Zeichne ich zwischen den Makroaufrufen irgendeine Linie, läuft das Makro einwandfrei durch.

Ich nehme an, der Fehler liegt nicht in der Code-Zeile.

Gibt es irgendetwas beim Ausführen von Makros in C3D 2017 zu beachten?

------------------
Grüße aus München
Christian

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

otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 18. Jul. 2017 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

Liebes Forum,

es muss wohl an den doppelten Einträgen im _adcenter bei Layer/Layers, Blöcke/Blocks, ... liegen.

Per VBA kann man deshalb die richtige Liste (ThisDrawing.layers(xxx)) wohl nicht immer ansprechen und es kommt zu Fehlermeldungen.

Lt. Autodesk kommt dieser Fehler (deutsche + englische Ordner) bei den deutschen Civil 3D Versionen von 2018,2017 und 2016 vor.


Kann mir jemand sagen, wie ich die richtige Liste im VBA korrekt anspreche?

------------------
Grüße aus München
Christian

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 04. Aug. 2017 01: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 otm 10 Unities + Antwort hilfreich

Schon mal rein provokativ
Thisdrawing.layers.item("blah") probiert ?

Natürlich muss der Layer existent sein
Also obrige Lösung ist nur dann ne Lösung wenn die Implementierung "etwas" strange ist
*untested* war zu faul die aus meiner lib rauszukopieren 

function layer_exist(layer as string)as boolean
layer_exist=false
on error resume next
err.clear
dim l as layer
set l=thisdrawing.layers(layer)
if err.number=0 then layer_exist=true
end function

wenn die funktion false ergibt dann ist ein
Thisdrawing.layers.add angesagt 

Lieben Gruß
Thomas

------------------
Wer es nicht versucht, hat schon verlorn  
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !

[Diese Nachricht wurde von rexxitall am 04. Aug. 2017 editiert.]

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 04. Aug. 2017 01: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 otm 10 Unities + Antwort hilfreich

Kleiner Nachtrag.
es muss nicht zwangsläufig sein das acad ad bei der Routine abraucht.
Sehr oft konnte ich ein "sonderbares" Verhalten feststellen wenn der VBA Code
beim "compilieren" nicht furchläuft.
Auch das exportieren und wiedereinlesen der VHA objekte hat auch schon mal Fehler behoben.
Und zu guter lezt das Phänomen : nach reboot tut alles.
Ich red hier über ne DVB mit ca. 400.000 Zeilen 
Lieben Gruß
Thomas

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !

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