Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Abfragen ob Block schon in der Zeichnung ist

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Abfragen ob Block schon in der Zeichnung ist (913 mal gelesen)
The VIP
Mitglied
Technischer Zeichner


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

Beiträge: 170
Registriert: 06.09.2002

AutoCAD Mechanical 6 unter Windows XP

erstellt am: 12. Jul. 2004 07:38    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.

Über eine Eingabemaske kann ich die Abmasse eines Quadrats eingeben.
z.B. 40 (40mm). Danach setze ich einen Basispunkt und das Quadrat wird als Block erzeugt. Der Name des Blocks lautet "40".

Das Makro läuft so ab, dass die Linien gezeichnet werden und danach zum Block "40" dazugenommen werden. Wenn nun aber schon so ein Block in der Zeichnung ist, und ich das Quadrat mit den Abmessungen 40 erneut zeichnen lasse, dann wird dieser Block um die selben 4 Linien ergänzt. Er fügt die neuen Linie hinzu (-> 8 Linie).
Da der Basispunkt dann meist ein anderer ist, stimmt am schluß nichts mehr.

Lange Rede kurzer Sinn: Wie kann ich vor Beginn des Makros abfragen, ob der Block schon in der Zeichnung ist? -> Wenn Ja, dann soll er den Block nehmen und einfügen, ansonsten soll er den Block neu zeichnen.

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13530
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 12. Jul. 2004 08: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 The VIP 10 Unities + Antwort hilfreich

Werte einfach folgenden Ausdruck weiter aus :

Set block = thisdrawing.Blocks("40")

------------------
- Thomas -

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

The VIP
Mitglied
Technischer Zeichner


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

Beiträge: 170
Registriert: 06.09.2002

AutoCAD Mechanical 6 unter Windows XP

erstellt am: 12. Jul. 2004 10: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

hm, das versteh ich nicht.
Ich bin kein Profi bei VBA in AutoCAD.
Kannst du mir dazu noch etwas mehr Infos geben?

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 12. Jul. 2004 17: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 The VIP 10 Unities + Antwort hilfreich

Probier einmal diese Funktion:
Code:
Public Function BlockInDrawing(BlockName)
    Dim BlCheck As AcadBlock
   
    On Error Resume Next
    Set BlCheck = ThisDrawing.Blocks(BlockName)
    If Err Then
        BlockInDrawing = False
    Else
        BlockInDrawing = True
    End If
   
End Function

------------------
Roland

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

The VIP
Mitglied
Technischer Zeichner


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

Beiträge: 170
Registriert: 06.09.2002

AutoCAD Mechanical 6 unter Windows XP

erstellt am: 13. Jul. 2004 08: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

Hi RoSiNiNo.
Danke, die Funktion hab ich bereits bei mir im Modul drin. Hab ich mal von dir bekommen 

Ich denke die Abfrage muss richtig als If-Block kommen (nicht als Funktion).

Denn später kommen ja die Zeilen

Code:

Set BLOCK_LINIE = BLOCK_RECHTECK.AddLine(Point3D(100,0), Point3D(100, 100))
Set BLOCK_LINIE = BLOCK_RECHTECK.AddLine(Point3D(100,100), Point3D(0, 100))


etc. etc.
und die muss ich dann ja mit Else beantworten.


If Block schon in der Zeichnung, dann
- vorhandener Block einfügen
Else
- Linie zeichnen und zu Block hinzufügen
- Block einfügen
End if

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



Anzeige:Infos zum Werbeplatz >>

A>V>C> Solid Subtract CAD APP für Messestände, Holzarbeiten, Allgemeine Werkzeuge

Subtraction, intersection, and union of solids. With or without a gap. Preserving material and face coloring. Preserving source objects and the subtrahend.

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 13. Jul. 2004 08: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 The VIP 10 Unities + Antwort hilfreich

Darum gibt es ja die Funktion
Code:
If BlockInDrawing("Mein_Block") = True Then
    'Mach etwas wenn der Block in der Zeichnung ist
Else
    'Wenn nicht, etwas anderes
End If

------------------
Roland

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