Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Problem beim Blockinsert

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:  Problem beim Blockinsert (1759 mal gelesen)
Heiko76
Mitglied
Applikationsingenieur


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

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 16. Feb. 2004 10:09    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,

ich habe ein Problem beim einfügen von Blöcken mit folgendem Code:

        Dim einfüge(0 To 2) As Double
        Dim xyz As Double
        Dim acadapp As Object
        Dim acaddoc As Object
        Dim acadutil As Object
        Dim Dateiname As String

        Set acadapp = GetObject(, "AutoCAD.Application")
        Set acaddoc = acadapp.ActiveDocument
        Set acadutil = acaddoc.Utility

        Dateiname = "/Risupport/Rahmen/Pruefung.dwg"
        xyz = 1#
        einfüge(0) = 0: einfüge(1) = 0: einfüge(2) = 0
        Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfüge, Dateiname, xyz, xyz, xyz, 0)

kommt folgende Fehlermeldung:

Laufzeitfehler '-2145386445 (80200033)':

Dateifehler


Im AutoCAD-Filer-Vorgang ist ein Fehler aufgetreten.

Was ist hier schief gelaufen?

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

cu
Heiko

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

Revit 2019, ACMep2019, F360

erstellt am: 16. Feb. 2004 10: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 Heiko76 10 Unities + Antwort hilfreich

fehlender Laufwerksbuchstabe...

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

Heiko76
Mitglied
Applikationsingenieur


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

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 16. Feb. 2004 10: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

Hab ich auch schon versucht. Der Pfad ist in den Options von AutoCAD definiert als R:/ und darunter ist der rest des Pfades. Ich habe es aber auch schon mit R:/ probiert. Das geht auch nicht.

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

cu
Heiko

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

Revit 2019, ACMep2019, F360

erstellt am: 16. Feb. 2004 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 Heiko76 10 Unities + Antwort hilfreich

hast Du es mal mit nem Backslash (\) probiert? "/" ist eher was für die Lisp'ler. Soweit ich weiss MUSS der Pfad komplett sein, Suchpfade werden hier nicht refernziert. Ausser Du gibst vieleicht nur den Blocknamen an.

Ich glaub bei 2K gabs da nen Problem. Wenn Du den Block dann eingefügt bekommst, ändere mal die Blockdefinition innerhalb Deiner Zeichnung und führ den Code nochmal aus. Normalerweise sollte zumindest ein Fehler auftreten wegen überschreiben und so. Ich meine VBA nimmt dann trotz Pfad die in der Zeichnung enthaltene Blockdefinition, ist nicht immer gewünscht.

Gruss,
Harry

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

Heiko76
Mitglied
Applikationsingenieur


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

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 16. Feb. 2004 11: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

Hi harryk,

es klappt, ich glaubs ja nicht. Es lag tatsächlich an dem backslash. Danke für den Tipp. Hatte wohl mal wieder Lisp und VBA etwas durcheinander geschmissen. 

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

cu
Heiko

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 03. Nov. 2004 15:20    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 Heiko76 10 Unities + Antwort hilfreich

Hallo, ich habe ein ähnliches "Problem" wie dieses hier. Ich muß mehrere Blöcke gleichzeitig über ein VBA-Programm in die dwg einfügen - und zwar an ganz bestimmten Einfügepunkten. Nun habe ich den Code hier genommen und mit einem Block funktioniert es auch.

Ich dachte mir nun, ich brauch im VBA-Editor diesen Code bloß mehrmals hinschreiben und entsprechend abändern, dass er meinetwegen 3 oder 4x da steht - also 3 oder 4 Blöcke an unterschiedlichen Einfügepunkten platziert werden. Aber irgendwas funktioniert da nicht?

Was könnte falsch sein?

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 03. Nov. 2004 15:41    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 Heiko76 10 Unities + Antwort hilfreich

Ich habe den Fehler gefunden - nun klappt es auch mit mehreren Blöcken.:-) Interessant für mich wäre aber nun noch folgendes:

wie kann ich einen Code schreiben, bei dem der erste Block an einem beliebigen Punkt eingefügt wird, aber der zweite Block am BASISPUNKT des ersten Blockes bzw. in BEZUG zu diesem BASISPUNKT eingefügt wird?

K

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

Headcase
Mitglied
Dipl.-Ing. (FH) --> Maschinenbau


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

Beiträge: 141
Registriert: 14.10.2004

WinXP Prof., SP3
AutoCAD Mechanical 2010 (2008)
Inventor 2010 (2008)

erstellt am: 04. Nov. 2004 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 Heiko76 10 Unities + Antwort hilfreich

Moin!
Also Einfügen an beliebigen Punkt geht so:
Nutzer wählt Punkt aus:
->  pkt = ThisDrawing.Utility.GetPoint(, "Einfügepunkt wählen")
Nun Block einfügen wie oben, mit pkt als Einfügepunkt.

Der Basispunkt ist ja in der Blockdefinition festgelegt und somit ist nach Einfügen des Blocks Einfügepunkt=Basispunkt=pkt

Für die weiteren Blöcke nun Pkt unverändert als Einfügepunkt nutzen oder die x/y/z Werte varieren, z.B. Verschiebung um 100 in positive x-Richtung -> pkt(0)=pkt(0)+100

Hoffe das hilft dir weiter... 
Grüße!

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 04. Nov. 2004 09:07    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 Heiko76 10 Unities + Antwort hilfreich

Zunächst mal Danke für Deinen Tipp. Bloß ist es so, dass ich nicht will, dass der Benutzer den Einfügepunkt eingibt, sondern das soll alles automatisiert ablaufen. Der erste Block wird eingefügt und es folgen alle anderen Blöcke, welche an bestimmten Punkten des ersten Blockes und in einer bestimmten Drehung angefügt werden sollen - ohne Eingabe des Bentzers.

K

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

Headcase
Mitglied
Dipl.-Ing. (FH) --> Maschinenbau


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

Beiträge: 141
Registriert: 14.10.2004

WinXP Prof., SP3
AutoCAD Mechanical 2010 (2008)
Inventor 2010 (2008)

erstellt am: 04. Nov. 2004 09: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 Heiko76 10 Unities + Antwort hilfreich

Nun, in diesem Fall musst du halt den ersten Punkt festlegen und vor jedem weiteren Einfügevorgang den  Einfügepunkt relativ zum ersten neu berechnen bzw. festlegen. Das Drehen des Blockes erreicht du, in dem du für den letzten Parameter statt 0 den Drehwinkel angibst.

[Diese Nachricht wurde von Headcase am 04. Nov. 2004 editiert.]

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

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

He, das klappt ja wirklich. So einfach ist das. Man muß eben bloß wissen, wie und wo man das im Code berücksichtigen muß. Und das fällt mir noch schwer, weil ich mit VBA noch nie gearbeitet habe.

Danke! Bekommst auch 10 Unities dafür :-)

K

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