Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  mit variablen Werten eine komplette Zeichnung erstellen (Seite 1)

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 Dieses Thema ist 2 Seiten lang:   1  2 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:  mit variablen Werten eine komplette Zeichnung erstellen (7546 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: 07. Aug. 2003 09:32    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.

Bei uns in der Firma hier werden Drehtüren wie man sie von Hoteleingängen her kennt produziert. Wir agieren in Durchmesserbereichen zwischen 2m und 4m.

Bei uns sind momentan Draufsichten von solchen Anlagen mit den obengenannten "Standarddurchmessern" (100mm-Schritten) jeweils als DWG abgelegt und werden bei Bedarf in eine Zeichnung geladen.
Somit liegen bei uns 21 Zeichnungen auf dem Netzwerk die alle bei einer grundsätzlichen Änderung alle geöffnet werden müssen und abgeändert werden müssen.

Meine Frage nun: Kann ich über VBA ein Makro programmieren, welches mir die Draufsicht zeichnet, nachdem ich einige Angaben über ein Eingabefeld gemacht hat (z.B.Durchmesserangabe).

Ich kenne VBA aus Excel sehr gut und kann nahezu perfekt im Excel mit VBA programmieren, bin aber mit den (für mich neuen) Befehlen im AutoCAD-VBA überhaupt nicht vertraut.

Kann mir jemand helfen, eine Anweisung zu schreiben oder mir anderweitig Tipps zu diesem Thema geben? Danke.

 

The VIP


EDIT: Ist es nicht möglich ein Makro wie im Excel aufzuzeichnen?  Auf diese Weise könnte ich die Draufsicht nämlich einmalig zeichnen und würde lediglich die Werte durch Variablen ersetzen.

[Diese Nachricht wurde von The VIP am 07. August 2003 editiert.]

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 07. Aug. 2003 10:57    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

HI,
so ein MacroRecorder wäre ne feine Sache, wenn einer einen kennt, würde mich das auch interessieren.

Ansonsten hat mir die Onlinehilfe von AutoCad viel weitergeholfen beim Einstieg.
Habe meine VBA-Erfahrungen in Access sammeln können, der Einstieg in VBA-für Autocad gestaltete sich aber recht schwierig.
Schau mal unter dem AutoCad-menübefehl

      ?
      |_Entwicklerhilfe
            |_ActiveX and VBA Reference
                      |_Code Examples

Außerdem findest du unter \Programme\acad2000\samples jede menge fix und fertiger Acad-VBA-Projekte.

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

Bernd

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: 07. Aug. 2003 16: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

Zitat:
Original erstellt von BerndE:
Schau mal unter dem AutoCad-menübefehl

      ?
      |_Entwicklerhilfe
             |_ActiveX and VBA Reference
                      |_Code Examples



Mist - ich hab den Menüpunkt "Entwicklerhilfe" gar nicht 
Ich hab hier nur AutoCAD Mechanical 6.

Danke für die Pfadangabe mit den Beispieldateien. Das war schonmal sehr hilfreich. Scheint alles gar nicht so einfach zu erlernen zu sein; trotz meiner vielen Kenntnissen von Excel VBA komm ich nicht besonders gut vorwärts...

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: 08. Aug. 2003 07:51    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

Hallo VIP,
sicher kann man in VBA alles automatisch zeichnen lassen, es stellt sich nur die Frage ob sich das auszahlt. Natürlich auch die Frage wie kompliziert die Darstellung sein soll und wie viele Linien du berechnen möchtest.
Ich würde aber sagen, alles im Ursprung der Zeichnung zeichnen und dann an die jeweilige Stelle schieben und verdrehen, dann braucht man nicht so viel zu rechnen.
Was ändert sich denn an diesen Türen, nur der Radius? Wenn sich nicht mehr ändert, dann ist das Programm recht einfach und schnell zu bewerkstelligen.

------------------
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: 08. Aug. 2003 09: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


VBA.zip

 
Im Grunde ist der Aufbau der Drausicht recht simpel. Ich habe eine Datei angehägt bei der allerdings nicht alles drauf ist was wir in der Regel für den Kunden darstellen (nicht dass ich sonst noch ärger bekomme wenn ich sowas hier veröffentliche  )

Wie gesagt, bei uns werden oft "ungerade" Durchmesser (z.B. 2550) verlangt und dann muss man immer alles neu zeichnen. Da aber alle Linien mathematisch an eine bestimmte Position gehören dürfte das über ein Makro und ein kleines Eingabefeld sicher zu bewerkstelligen sein.
Ich denke das rechnet sich bestimmt.

Vielen Dank für die Starthilfe im voraus. 

Gruß The VIP

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: 08. Aug. 2003 09:55    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

Hallo VIP,
eigentlich sollte das kein Problem sein, das komplizierteste ist eigentlich den Anfangs- und Endwinkel der Bögen zu berechnen, alles andere ist eigentlich nur ein Kinderspiel.

------------------
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: 08. Aug. 2003 10: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

ja, hab ich mir auch gedacht. ist wirklich nicht komplex.

allerdings kenne ich noch nicht mal die Anweisung um einen Kreis in VBA zu zeichnen oder eine Linie zu stutzen. Wenn du mir mit ein paar Befehlen als Stütze behilflich sein könntest wär ich sehr dankbar.

Wenn der Stein bei mir erst mal ins Rollen gekommen ist, geht's meist ganz einfach und schnell bei mir mit dem (Er-)lernen.

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: 08. Aug. 2003 10: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 Nur für The VIP 10 Unities + Antwort hilfreich

Hast du gar keine Hilfe für "ActiveX und VBA-Reference"? Da würdest du alles über das erstellen von Objekten und vor allem das Objekt-Modell von ACAD finden.

------------------
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: 08. Aug. 2003 11:02    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

mmhhh...wie's aussieht nicht.

Im Visual Basic Editor hab ich nur:

"?"
-> "Microsoft Visual Basic Hilfe F1"
-----------------------
-> "Microsoft Visual Basic Info"

Bin leider nicht für die Installation zuständig. Muss man da was nachinstallieren? Den Visual Basic Editor selber habe ich (Alt+F11).
Die Hilfe unter F1 ist eher dürftig.  mit dem Objektkatalog komm ich nicht so klar - den hab ich auch bei Excel so gut wie nie genutzt.

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: 08. Aug. 2003 11: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 Nur für The VIP 10 Unities + Antwort hilfreich

Dann schreib einmal AcadLine rein, markier den Text und drück nochmal F1

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

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 08. Aug. 2003 11: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 The VIP 10 Unities + Antwort hilfreich

Die Hilfe die Du brauchst findest du nicht im VBA-Editor sondern unter der AutoCad-Oberfläche

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

Bernd

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: 08. Aug. 2003 11: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

@Bernd: Sicher findest du sie auch im VBA-Editor, mußt halt nur ein ACAD-Objekt anklicken und dann die Hilfe aufrufen.

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

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 08. Aug. 2003 11:15    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

stimmt schon...wollte ihm nur den weg zur entwicklerhilfe zeigen

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

Bernd

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: 08. Aug. 2003 11:53    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

das mit dem Markieren des Textes und F1 klicken hat geklappt.
Dann werd ich mich mal durchwurschteln...

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: 08. Aug. 2003 11:56    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

Solltest du sonst noch fragen haben, melde dich einfach.
Es genügt übrigens nur ein Viertel der Tür zu rechnen, den rest kannst du dann spiegeln.

------------------
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: 08. Aug. 2003 13:06    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 hoffe mal nicht dass ich durch meine (vielen) Fragen die ich evtl. noch haben werde, diesen Thread hier sprenge... Gebt mir einfach Bescheid, wenn ich abdrifte oder das ganz hier unübersichtlich wird und ich zu bestimmten Themen besser einen neuen Thread eröffnen soll.

Ich hab es über die Hilfe-F1 und meinen Excel-Kenntnissen folgendes hinbekommen:

Sub Aussenwand()
  
    Dim ANTWORT As Integer
    Dim circleObj As AcadCircle
    Dim centerPoint(0 To 2) As Double
      
    ANTWORT = InputBox("Durchmesserangabe", "Test")
   
    'KREIS
    centerPoint(0) = 0#
    centerPoint(1) = 0#
    centerPoint(2) = 0#
    Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, ANTWORT + 1.5)
   
    Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, ANTWORT + 31.5)
   
   
End Sub

Zwei Fragen dazu:
Gehe ich richtig vor, wenn ich zuerst zwei Kreis zeichne und die dann über das Makro an den Eckpunkten (siehe angehängt Datei bzw. fertige Zeichnung) stutze oder ist es besser einen Bogen zu zeichnen zu lassen und nicht einen Kreis, den ich dann stutze? Wie würdet ihr vorgehen (nur damit ich nicht das Feld falsch aufrolle und gleich zu beginn einen groben Fehler mache)

Nummer 2:

Auch in den Beispielen die im Excel in der Hilfe zu finden waren, wurde immer gerne mit Variablen gearbeitet. zum Beispiel hier:


Dim centerPoint(0 To 2) As Double
....
Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, ANTWORT + 31.5)


mir wäre es lieber, wenn ich folgendes schreiben dürfte:

Set circleObj = ThisDrawing.ModelSpace.AddCircle(0,0,0, ANTWORT + 31.5)


was natürlich in dieser Schreibweise nicht funktioniert (die Kommas werden nicht akzeptiert).

Kann man die Koordinaten auch direkt hinten angeben oder muss ich den Weg über die Variable machen?

Auch das cicrleObj und überhaupt das Verwenden von Variablen (in dieser Form) mache ich nicht so gerne, auch wenn es manchmal nützlich ist / sein soll.

Mir scheint es für einen einfachen Kreis ein sehr langes Makro. Ich spare da gerne bei den Befehlen und hab auch so eher den überblick (ist halt meine Programmierweise bisher)

[Diese Nachricht wurde von The VIP am 08. August 2003 editiert.]

[Diese Nachricht wurde von The VIP am 08. August 2003 editiert.]

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: 08. Aug. 2003 13:28    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

zu 1:
Code:
Dim Radius as double
Radius= ThisDrawing.Utility.GetInteger(vbCr & "Radius: ")
if Radius<=0 then exit sub
....

Dann mußt du den Einsetzpunkt und den Einsetzwinkel abfragen.
Code:
Dim EP as Variant
Dim Winkel as double
EP = Thisdrawing.utility.getpoint (vbcr & "Einsetzpunkt: ")
Winkel= Thisdrawing.utility.getangle (EP, vbcr & "Einsetzwinkel: ")


Aufpassen! Wenn du nicht im WKS bist, mußt du den EP auf dein aktuelles BKS umrechnen, und zwar mit "ThisDrawing.Utility.TranslateCoordinates(...)".
jetzt müsstest du Bögen zeichnen, das heißt, du brauchst den Anfangs- und Endwinkel. Die mußt du dir berechnen.
zu 2:
Wenn du nur die Werte beim Zeichnen des Kreises angeben willst, verwende folgende Funktion
Code:
Public Function Point3D(x As Double, Y As Double, Optional z As Double = 0) As Variant

    Dim retVal(0 To 2) As Double
   
    retVal(0) = x: retVal(1) = Y: retVal(2) = z
   
    Point3D = retVal

End Function



Einen Kreis zeichnest du dann so
Code:
dim Kreis as acadcircle
set Kreis= Thisdrawing.modelspace.addcircle(point3d(0,0,0),Radius)

Noch besser wäre es, wenn du dir zum einsetzen der Objekte eine Funktion schreibst, die schaut nach in welchem Bereich du dich befindest. z.B.
Code:
Public Function AddCircleEx(Center, Radius As Double) As AcadCircle

    Dim objTemp As AcadCircle
   
    On Error GoTo Err_Control
   
    If ThisDrawing.ActiveSpace = acModelSpace Then
       Set objTemp = ThisDrawing.ModelSpace.AddCircle(Center, Radius)
      
    ElseIf ThisDrawing.ActiveSpace = acPaperSpace And Not (ThisDrawing.MSpace) Then
       Set objTemp = ThisDrawing.PaperSpace.AddCircle(Center, Radius)
      
    Else: ThisDrawing.ActiveSpace = acPaperSpace And (ThisDrawing.MSpace)
        Set objTemp = ThisDrawing.ModelSpace.AddCircle(Center, Radius)
       
    End If
     
    Set AddCircleEx = objTemp
    Set objTemp = Nothing
     
Exit_Here:
    Exit Function
 
Err_Control:

    MsgBox "Error: " & Err.Number & "  " & Err.Description & " In AddCircle Function "

    Resume Exit_Here
 
End Function


So, das sollte für den Anfang genügen. Ich verabschiede mich ins WE.

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

[Diese Nachricht wurde von RoSiNiNo am 08. August 2003 editiert.]

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: 09. Aug. 2003 18:32    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

Was hat es eigentlich mit diesem "Nothing" auf sich?
Set AddCircleEx = objTemp
Set objTemp = Nothing

Ich hab das schon öfter gelesen, kann aber nichts damit anfangen.

Danke Roland für deine Vorgaben. Werd ich gleich mal am Montag ausprobieren.  

MfG The VIP

[Diese Nachricht wurde von The VIP am 09. August 2003 editiert.]

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

hsb
Mitglied
Ing

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

Beiträge: 4
Registriert: 10.08.2003

erstellt am: 10. Aug. 2003 22: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 The VIP 10 Unities + Antwort hilfreich

Hallo VIP,
wir vertreiben ein Programm , mit dessen Hilfe man Zeichnungen parametrisch erzeugen kann. Im Prinzip ist es ein LISP-Recorder, der die geschilderte Aufgabe löst.
Ein Excel-AddIn kann Eingaben/Variablen aus Excel importieren.
Nähere Infos unter www.hsb-cad.de

hsb

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: 11. Aug. 2003 07: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 The VIP 10 Unities + Antwort hilfreich

Nothing


Das Schlüsselwort Nothing wird verwendet, um die Verbindung einer Objektvariablen zum zugehörigen Objekt aufzuheben. Weisen Sie einer Objektvariablen mit der Set-Anweisung den Wert Nothing zu. Beispiel:

Set Objekt1 = Nothing

Mehrere Objektvariablen können sich auf dasselbe Objekt beziehen. Wenn einer Objektvariablen der Wert Nothing zugewiesen wird, verweist diese Variable anschließend auf kein aktuelles Objekt mehr. Wenn mehrere Objektvariablen auf dasselbe Objekt verweisen, werden die Speicher- und Systemressourcen, die für das Objekt reserviert wurden, auf das die Variablen verweisen, erst freigegeben, nachdem alle Objektvariablen auf Nothing gesetzt wurden (entweder explizit mit Set oder implizit, nachdem die letzte Objektvariable den Gültigkeitsbereich verläßt und auf Nothing gesetzt wird.)

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

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: 11. Aug. 2003 07: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 The VIP 10 Unities + Antwort hilfreich

Da wäre mir noch etwas eingefallen, du mußt nicht unbedingt die Winkel rechnen. Du könntest die Rechtecke zeichnen, dann die Bögen mit den Winkeln 0° bis 45° (oder 60°). Dann könntest du mit IntersectWith die Schnittpunkte ermittlen und dadurch hast du die exakten Winkeln für deine Bögen --> AngleFromXAxis(Point1, Point2)

Weiters würde ich alle Objekte in ein Array schreiben, dann könntest du zwei Funktionen schreiben, eine die dir alle Objekte eines Arrays mit einem gewissen Winkel um einen Punkt dreht, die zweite verschiebt dir alle Objekte des Arrays von Punkt1 zu Punkt2.

Noch etwas, bei einem Block mußt du aufpassen.
1. Der Block muß in einem Suchverzeichnis vorhanden sein (sofern du nicht den ganzen Pfad angibst)
2. Wenn der Block schon in der Zeichnung vorhanden ist, würde ich ihn ohne ".dwg" einsetzten
3. Wenn der Block noch nicht in der Zeichnung vorhanden ist, mußt du ihn mit ".dwg" einsetzen.

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

[Diese Nachricht wurde von RoSiNiNo am 11. August 2003 editiert.]

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: 11. Aug. 2003 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


VBAVersion1.txt

 
Hallo beisammen.

Habe am Wochenende alleine mit Excel versucht rechnerisch mit Hilfe von Pythagoras an die Koordinaten der Endpunkte der Bögen zu gelangen. Hat geklappt, wenn ich auch etwas skeptisch war was die Genauigkeit angeht.

Heute morgen als ich die Bögen in AutoCAD gemessen habe und die Koordinaten vermasst habe, hab ich Abweichungen im 100stel-Bereich gegenüber der Excel-Berechnung festgestellt (kann mit Rundungen oder der Zahl Pi zu tun haben - keine Ahnung).

Jedenfalls stimmt die Berechnung (siehe Anhang) nur das Ergebnis ist nicht 100%ig:

berechnete X-Koordinate: 748.218370269548 (Bei Ø2000 und 180° bzw. 45°-Seitenwand)
gemessense X-Koordinate: 748.222261554

das zieht sich  durch jede Koordinate - überall Abweichungen bei der zweiten Nachkommastelle 

ich glaube nicht dass ich so vorgehen kann, obwohl das relativ einfach und auch schnell gelöst gewesen wäre.
Dass das so ein Problem ist, hätte ich nicht gedacht.

@hsb: Konnte den LISP Recoder nicht auf der HP finden. Der Bereich Download ist Kennwortgeschützt
@RoSiNiNo: Kann ich nicht einfach die Bögen an den Rechtecken stutzen lassen. Alles andere ist sonst eher ungenau oder (siehe oben -> berechnen bedeutet immer Runden...)

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: 11. Aug. 2003 08: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 The VIP 10 Unities + Antwort hilfreich

Probier es doch einfach mal mit den Schnittpunkten, wirst sehen das es viel genauer ist als die Berechnung. Da hast du nämlich nicht zwei mal PI drinnen und auch nicht zig Brüche.

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

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: 11. Aug. 2003 09:13    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

Hallo VIP,
ich hab dir jetzt ganz schnell die Funktion geschrieben, die Werte mußt du selbst abfragen, hab es jetzt mal mit Konstanten gemacht.
Code:
Public Sub Drehtuer()
    Const Durchmesser As Double = 2000
    Const Winkel As Double = 60
    Dim Radius As Double
    Dim WinkelRad As Double
    Dim Linie1_1 As AcadLine
    Dim Linie2_1 As AcadLine
    Dim Bogen1 As AcadArc
    Dim Bogen2 As AcadArc
    Dim Bogen1Temp As AcadArc
    Dim Bogen2Temp As AcadArc
    Dim SP1_1 As Variant
    Dim SP2_1 As Variant
    Dim SP1_2 As Variant
    Dim SP2_2 As Variant
   
    Radius = Durchmesser / 2
    WinkelRad = Winkel * funPI / 180
   
    Set Linie1_1 = AddLineEx(Point3D(1000, 50), Point3D(1050, 50))
    Set Linie2_1 = AddLineEx(Point3D(999, -27), Point3D(1036, -27))
    Set Bogen1Temp = AddArcEx(Point3D(0, 0), Radius + 1.5, 0, WinkelRad)
    Set Bogen2Temp = AddArcEx(Point3D(0, 0), Radius + 31.5, 0, WinkelRad)
   
    Linie2_1.Rotate Point3D(0, 0), WinkelRad
   
    SP1_1 = Bogen1Temp.IntersectWith(Linie1_1, acExtendNone)
    SP2_1 = Bogen1Temp.IntersectWith(Linie2_1, acExtendNone)
    SP1_2 = Bogen2Temp.IntersectWith(Linie1_1, acExtendNone)
    SP2_2 = Bogen2Temp.IntersectWith(Linie2_1, acExtendNone)
   
    Set Bogen1 = AddArcEx(Point3D(0, 0), Radius + 1.5, ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP1_1), ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP2_1))
    Set Bogen2 = AddArcEx(Point3D(0, 0), Radius + 31.5, ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP1_2), ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP2_2))
   
    Bogen1Temp.Delete
    Bogen2Temp.Delete
   
End Sub


Public Function AddArcEx(Center, Radius As Double, StartAngle As Double, EndAngle As Double) As AcadArc
   
    Dim Arc As AcadArc
   
    Select Case ThisDrawing.ActiveSpace
        Case acPaperSpace
            Select Case ThisDrawing.MSpace
                Case True
                    Set Arc = ThisDrawing.ModelSpace.AddArc(Center, Radius, StartAngle, EndAngle)
                Case False
                    Set Arc = ThisDrawing.PaperSpace.AddArc(Center, Radius, StartAngle, EndAngle)
            End Select
        Case acModelSpace
            Set Arc = ThisDrawing.ModelSpace.AddArc(Center, Radius, StartAngle, EndAngle)
    End Select
   
    Set AddArcEx = Arc
    Set Arc = Nothing
   
End Function

Public Function AddLineEx(Startpunkt, Endpunkt) As AcadLine
   
    Dim Linie As AcadLine
   
    Select Case ThisDrawing.ActiveSpace
        Case acPaperSpace
            Select Case ThisDrawing.MSpace
                Case True
                    Set Linie = ThisDrawing.ModelSpace.AddLine(Startpunkt, Endpunkt)
                Case False
                    Set Linie = ThisDrawing.PaperSpace.AddLine(Startpunkt, Endpunkt)
            End Select
        Case acModelSpace
            Set Linie = ThisDrawing.ModelSpace.AddLine(Startpunkt, Endpunkt)
    End Select
   
    Set AddLineEx = Linie
    Set Linie = Nothing
   
End Function

Public Function funPI()

    funPI = 4 * Atn(1)

End Function

Public Function Point3D(x As Double, Y As Double, Optional z As Double = 0) As Variant

    Dim retVal(0 To 2) As Double
   
    retVal(0) = x: retVal(1) = Y: retVal(2) = z
   
    Point3D = retVal

End Function



Wie du siehst, hab ich nur den Winkel umgerechnet, das war es auch schon.

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

[Diese Nachricht wurde von RoSiNiNo am 11. August 2003 editiert.]

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: 11. Aug. 2003 09: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

Wow! Ich verstehe zwar die Hälfte nicht, aber es funktioniert  
Gibt's irgendein Buch das zu empfehlen ist oder eine Internetseite wo sich mit dem Thema "Acad-VBA-Erlernen" beschäftigt?
Wie es scheint hab ich noch viel zu lernen  

Aber ich seh schon, das wird mir richtig Spaß machen, da man ja anscheinend alles mögliche programmieren kann.

[Diese Nachricht wurde von The VIP am 11. August 2003 editiert.]

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: 11. Aug. 2003 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 The VIP 10 Unities + Antwort hilfreich

Ich hab es jetzt ein wenig umgeschrieben, jetzt hast du gleich Rechtecke.
Code:
Public Sub Drehtuer()
    Const Durchmesser As Double = 2000
    Const Winkel As Double = 60
    Dim Radius As Double
    Dim WinkelRad As Double
'    Dim Linie1_1 As AcadLine
'    Dim Linie2_1 As Acadline
    Dim Linie1 As AcadLWPolyline
    Dim Linie2 As AcadLWPolyline
    Dim PT1(7) As Double
    Dim PT2(7) As Double
    Dim Bogen1 As AcadArc
    Dim Bogen2 As AcadArc
    Dim Bogen1Temp As AcadArc
    Dim Bogen2Temp As AcadArc
    Dim SP1_1 As Variant
    Dim SP2_1 As Variant
    Dim SP1_2 As Variant
    Dim SP2_2 As Variant
   
    Radius = Durchmesser / 2
    WinkelRad = Winkel * funPI / 180
   
    PT1(0) = 1000: PT1(1) = -50: PT1(2) = 1050: PT1(3) = -50: PT1(4) = 1050: PT1(5) = 50: PT1(6) = 1000: PT1(7) = 50
    PT2(0) = 999: PT2(1) = -27: PT2(2) = 1036: PT2(3) = -27: PT2(4) = 1036: PT2(5) = 27: PT2(6) = 999: PT2(7) = 27
   
'    Set Linie1_1 = AddLineEx(Point3D(1000, 50), Point3D(1050, 50))
'    Set Linie2_1 = AddLineEx(Point3D(999, -27), Point3D(1036, -27))
    Set Linie1 = AddLightWeightPolylineEx(PT1)
    Set Linie2 = AddLightWeightPolylineEx(PT2)
    Linie1.Closed = True
    Linie2.Closed = True
   
    Set Bogen1Temp = AddArcEx(Point3D(0, 0), Radius + 1.5, 0, WinkelRad)
    Set Bogen2Temp = AddArcEx(Point3D(0, 0), Radius + 31.5, 0, WinkelRad)
   
'    Linie2_1.Rotate Point3D(0, 0), WinkelRad
    Linie2.Rotate Point3D(0, 0), WinkelRad
   
'    SP1_1 = Bogen1Temp.IntersectWith(Linie1_1, acExtendNone)
'    SP2_1 = Bogen1Temp.IntersectWith(Linie2_1, acExtendNone)
'    SP1_2 = Bogen2Temp.IntersectWith(Linie1_1, acExtendNone)
'    SP2_2 = Bogen2Temp.IntersectWith(Linie2_1, acExtendNone)
    SP1_1 = Bogen1Temp.IntersectWith(Linie1, acExtendNone)
    SP2_1 = Bogen1Temp.IntersectWith(Linie2, acExtendNone)
    SP1_2 = Bogen2Temp.IntersectWith(Linie1, acExtendNone)
    SP2_2 = Bogen2Temp.IntersectWith(Linie2, acExtendNone)
   
    Set Bogen1 = AddArcEx(Point3D(0, 0), Radius + 1.5, ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP1_1), ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP2_1))
    Set Bogen2 = AddArcEx(Point3D(0, 0), Radius + 31.5, ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP1_2), ThisDrawing.Utility.AngleFromXAxis(Point3D(0, 0), SP2_2))
   
    Bogen1Temp.Delete
    Bogen2Temp.Delete
   
End Sub


Public Function AddLightWeightPolylineEx(VerticelList) As AcadLWPolyline
   
    Dim PLinie As AcadLWPolyline
   
    Select Case ThisDrawing.ActiveSpace
        Case acPaperSpace
            Select Case ThisDrawing.MSpace
                Case True
                    Set PLinie = ThisDrawing.ModelSpace.AddLightWeightPolyline(VerticelList)
                Case False
                    Set PLinie = ThisDrawing.PaperSpace.AddLightWeightPolyline(VerticelList)
            End Select
        Case acModelSpace
            Set PLinie = ThisDrawing.ModelSpace.AddLightWeightPolyline(VerticelList)
    End Select
   
    Set AddLightWeightPolylineEx = PLinie
    Set PLinie = Nothing
   
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: 11. Aug. 2003 09:44    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

Wobei ich natürlich dazusagen muss, dass die Rechtecke in Wirklichkeit Blöcke sind, die ich einfügen lassen muss. Ich hab mal vorsichtshalber nur Rechtecke gezeichnet weil ich nicht sicher war ob ich so eine Systemzeichnung im Original an die Öffentlichkeit bringen darf.

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: 11. Aug. 2003 09: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 Nur für The VIP 10 Unities + Antwort hilfreich

Dann genügen dir natürlich die Linien, allerdings hab ich da einen kleinen Fhler gemacht, natürlich mußt du bei der eingabe der Koordiaten der Linien den Radius berücksichtigen.
Code:
    Set Linie1_1 = AddLineEx(Point3D(Radius, 50), Point3D(Radius+50, 50))
    Set Linie2_1 = AddLineEx(Point3D(Radius-1, -27), Point3D(Radius+36, -27))

So, hoffe das war es. Wie wäre es mit ein paar Unities? Muß natürlich nicht wein, ist aber immer schön, wenn auch etwas zurück kommt, auch wenn man gar nichts damit anfangen kann. 

------------------
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: 11. Aug. 2003 10:02    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

erklär mir das mal mit den Unities. Bin zwar oft im Forum, weiß aber nicht was es damit auf sich hat. Hab das bisher noch in keinem Forum gesehen.
Ich will ja schließlich nicht in Ungnade fallen nur weil ich nicht darüber bescheid weiß  Scheint wohl was wichtiges mit den Unities zu sein...

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: 11. Aug. 2003 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 The VIP 10 Unities + Antwort hilfreich

Ich hab eigentilch keine Ahnung was die zu bedeuten haben, aber man erkennt dann wenigstens wie viel jemandem die Antworten und die Hilfe Wert war. So erhällt man oft Unities von Leuten denen man in einem Beitrag gar nicht geholfen hat, und man freut sich dann umso mehr.
Außerdem steht man dann unter den TOP 5-Mitgliedern des letzten Monats 
Ich vergebe immer ein paar Punkte, wenn ich etwas neues erfahre, ganz egal ob ich es nun brauche oder nicht, so bekommt derjenige eine Rückmeldung, etwas Lob hat ja noch niemandem geschadet.
Sonst ist es mir aber recht egal, Haupsache ich bekomme irgeneine Rückmeldung. Oft ist es ja so das man auf irgendetwas antwortet und da kommt nix zurück, da weiß man dann natürlich nicht, ob einem der Rat geholfen hat oder nicht.

------------------
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: 11. Aug. 2003 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

Ups, das bedeutet, dass ich unter Umständen in der vergangenheit unbewußt negativ aufgefallen bin, weil ich das nicht gemacht habe.
Bekommst natürlich gerne Unties und auch die anderen die mir hier geholfen haben. Wieviel vergibt man denn so? Kannst soviel haben wie du willst - hast mir nämlich sehr geholfen - ehrlich!
Hat dich ja auch Zeit gekostet die Makros zu schreiben etc.

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: 11. Aug. 2003 11: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 The VIP 10 Unities + Antwort hilfreich

Gib einfach was du willst, und weil ich nicht so bin, gleich noch eine Funktion, dann sparst du dir die unnötige Arbeit.
Code:
Public Function InsertBlockEx(BlInsertPoint, BlName As String, Optional BlXScale As Double = 1, _
                              Optional BlYScale As Double = 1, Optional BlZScale As Double = 1, _
                              Optional BlRotation As Double = 0) As AcadBlockReference
   
    Dim BlNew As AcadBlockReference
   
    Select Case ThisDrawing.ActiveSpace
        Case acPaperSpace
            Select Case ThisDrawing.MSpace
                Case True
                    Set BlNew = ThisDrawing.ModelSpace.InsertBlock(BlInsertPoint, BlName, BlXScale, _
                            BlYScale, BlZScale, BlRotation)
                Case False
                    If funLayoutMM = True Then
                        Set BlNew = ThisDrawing.PaperSpace.InsertBlock(BlInsertPoint, BlName, 1, _
                                1, 1, BlRotation)
                    Else
                        Set BlNew = ThisDrawing.PaperSpace.InsertBlock(BlInsertPoint, BlName, BlXScale, _
                                BlYScale, BlZScale, BlRotation)
                    End If
            End Select
        Case acModelSpace
            Set BlNew = ThisDrawing.ModelSpace.InsertBlock(BlInsertPoint, BlName, BlXScale, _
                    BlYScale, BlZScale, BlRotation)
    End Select
   
    Set InsertBlockEx = BlNew
    Set BlNew = Nothing
   
End Function


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



Wenn du jetzt den Block einfügen möchtest, dann schreib einfach folgendes
Code:
    Dim Block1 As AcadBlockReference
    Const BlName1 As String = "Dein_Block"
   
    Set Block1 = InsertBlockEx(point3d(Radius,0), IIf(BlockInDrawing(BlName1), BlName1, BlName1 & ".dwg"))

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

[Diese Nachricht wurde von RoSiNiNo am 11. August 2003 editiert.]

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

pan
Mitglied



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

Beiträge: 141
Registriert: 18.01.2003

erstellt am: 11. Aug. 2003 11: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 The VIP 10 Unities + Antwort hilfreich

@theVip
Deine Frage nach Buch

AutoCAD programmieren mit VBA, m. CD-ROM
von Karsten Dummer, Michael Huth
Preis: EUR 59,95

erscheint im September
sh. auch bei Amazon.de

Gruß pan

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

hsb
Mitglied
Ing

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

Beiträge: 4
Registriert: 10.08.2003

erstellt am: 11. Aug. 2003 12: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 The VIP 10 Unities + Antwort hilfreich

hallo vip,
das ist richtig, der downloadbereich steht nur unseren kunden zur verfügung.
geht es um eine einfache kostengünstige lösung des problems oder geht es um das erlernen von vba?

hsb

Zitat:
Original erstellt von The VIP:
Hallo beisammen.

Habe am Wochenende alleine mit Excel versucht rechnerisch mit Hilfe von Pythagoras an die Koordinaten der Endpunkte der Bögen zu gelangen. Hat geklappt, wenn ich auch etwas skeptisch war was die Genauigkeit angeht.

Heute morgen als ich die Bögen in AutoCAD gemessen habe und die Koordinaten vermasst habe, hab ich Abweichungen im 100stel-Bereich gegenüber der Excel-Berechnung festgestellt (kann mit Rundungen oder der Zahl Pi zu tun haben - keine Ahnung).

Jedenfalls stimmt die Berechnung (siehe Anhang) nur das Ergebnis ist nicht 100%ig:

berechnete X-Koordinate: [b]748.218370269548 (Bei Ø2000 und 180° bzw. 45°-Seitenwand)
gemessense X-Koordinate: 748.222261554

das zieht sich  durch jede Koordinate - überall Abweichungen bei der zweiten Nachkommastelle  

ich glaube nicht dass ich so vorgehen kann, obwohl das relativ einfach und auch schnell gelöst gewesen wäre.
Dass das so ein Problem ist, hätte ich nicht gedacht.

@hsb: Konnte den LISP Recoder nicht auf der HP finden. Der Bereich Download ist Kennwortgeschützt
@RoSiNiNo: Kann ich nicht einfach die Bögen an den Rechtecken stutzen lassen. Alles andere ist sonst eher ungenau oder (siehe oben -> berechnen bedeutet immer Runden...)[/B]


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: 11. Aug. 2003 12: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

der Grundgedanke war, den Arbeitsaufwand zu verkleinern. Wenn bei uns eine grundsätzlich Änderung an den Draufsichten vergenommen wird, müssen mehrere Zeichnungen einzeln geöffnet und bearbeitet werden. Das mussten wir nun schon zwei Mal tun (es betrifft mehr als nur 21 Zeichnungen, da es auch Varianten gibt).

Dann kam mir die Idee mit VBA und ich dachte, dass es ähnlich ist wie Excel (welches ich ja sehr gut kann). Dem ist aber nicht so und nun hab ich festgestellt, dass ich AutoCAD VBA erst erlernen muss.
Das mit den ganzen Variablen festlegen und den Public Functions habe ich so nie genutzt. Meine Makros (die im Excel z.T. auch sehr komplex und vielfältig sind) habe ich immer auf das minimalste reduziert. Sprich: Nur dort Variablen erstellt wo es sein muss.

Hier muss ich alleine um eine Polylinie zu zeichnen schon ein separates Makro (Public Function) schreiben um (für mich) unwichtige Dinge wie Papier- und Modellbereich zu unterscheiden. Das kann selbst ich nicht aus dem Stehgreif 

Ich hab es dank der Hilfe im VBA nun schon fertig gebracht die Linien zu spiegeln sodass ich eine Draufsicht habe die ähnlich aussieht wie die Vorlage die ich weiter oben angehängt habe (mit großer Vorarbeit von RoSiNiNo   )

Die Entscheidung, dies zukünftig über VBA zu machen war eine Idee von mir, da nun schon wieder eine Überarbietung der Draufsichten bevorsteht (nämlich neue Radien) und so könnte ich einfach den Radius im Marko ändern und alles wäre geritzt. Ob ich das zeitlich hinbekomme bis diese nächste Änderung kommt (ca. 1 Monat) ist fraglich. Kann sein, dass dann trotzdem jemand hinhocken muss und alle die zeichnungen neu machen muss.

Soviel zum Hintergrund.

Ich weiß nicht ob man hier in der Firma bereit ist für diese "Spielerei" Geld auszugeben (auch wenn man deutlich einsparen würde, da je keiner zwei Tage hinsitzen muss und Zeichnungen anpassen muss) - aber wir kenne ja so manche Firmenpolitiken...  

So einen VBA-Recoder wie ganz oben erwäht wäre ne feine Sache, da ich auf diese Weise sehr schnell lernen könnte (so ging das auch bei Excel). Das Interesse am Erlernen ist bei mir da! Aber momentan steht eher das fertige Ergebnis im Vordergrund (für die Firma). Nur: Aus den Fingern kann ich mir das nicht saugen...

[Diese Nachricht wurde von The VIP am 11. August 2003 editiert.]

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

hsb
Mitglied
Ing

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

Beiträge: 4
Registriert: 10.08.2003

erstellt am: 11. Aug. 2003 13: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 The VIP 10 Unities + Antwort hilfreich

so ähnlich habe ich mir das auch gedacht, aber zum schluss ist es doch immer eine frage des geldes. was kostet es 21 zeichnungen ca 2/jahr neu zu zeichnen und wieviele andere parametrische zeichnungsaufgaben sind sonst noch zu bewältigen?
ich glaube das geht mit einem tool billiger.

zum programm
DOG (dynamischer objekt generator) erzeugt über parametrische definitionen bögen, linien, bemassungen, blöcke, schraffuren etc. die anzahl der variablen ist unbegrenzt. die definition einer parametrischen zeichnung dauert je nach komplexität der zeichnung ca. 1,5 - 2mal so lange wie eine konventionelle zeichnung.
das "aufgezeichnete" ergebnis ist ein lisp-programm, was die veränderung der zuvor definierten variablen zulässt und die davon abhängige zeichnung automatisch erzeugt.
komplexere berechnungen lassen sich für anwender ohne lisp-kenntnisse auch alternativ über eine excel-tabelle errechnen und dann an autocad+dog übertragen.

wenn interesse besteht kann ich mal ein kleines avi anhängen um die anwendung zu verdeutlichen.

mfg
hsb

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: 11. Aug. 2003 13: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 The VIP 10 Unities + Antwort hilfreich

Eigentlich ist ja die Drehtür schon fertig, jetzt mußt du nur mehr die Bemaßung einfügen und schon funkts.
Du mußt natürlich keine Funktion schreiben um eine Polylinie einzufügen, da man das aber öfter benötigt, ist es nicht schlecht wenn man so etwas einmal macht. Sollte jemand anderer Meinung sein, bitte melden.

------------------
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: 12. Aug. 2003 07:34    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

Moin,

das läuft ja schon sehr gut mit dem Makro. Hab die entsprechendenBlöcke zugewiesen etc.

Wenn ich noch einen normalen, geschlossenen Kreis (in Layer 7) zeichnen will (der quasi die komplette Aussenkontur der Anlage darstellen soll), was ist dann an der Anweisung...

ThisDrawing.ModelSpace.AddCircle(Point3D(0, 0), Radius + 45)

...falsch?

MfG The VIP

[Diese Nachricht wurde von The VIP am 12. August 2003 editiert.]

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. Aug. 2003 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 Nur für The VIP 10 Unities + Antwort hilfreich

Kommt ganz darauf an was du damit machen willst.
Wenn du den Kreis nachher noch einmal angreifen willst (Farbe ändern, verschieben,...), dann solltest du ihn dir auch merken.
Code:
dim Kreis as acadcircle
set kreis = thisdrawing.modelspace.addcircle(Einsetzpunkt, Radius)

wenn du den Kreis nicht mehr brauchst, dann
Code:
thisdrawing.modelspace.addcircle Einsetzpunkt, Radius

------------------
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: 12. Aug. 2003 12: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

Hier noch ein paar Fragen:

1. ich spiegle bisher das erste Viertelsegment der Drehtür nach links und habe dann eine halbe Drehtür, dann spiegel wiederum dieses Viertel nach unten und dann wieder nach rechts um eine komplette Drehtür zu erhalten.
Kann ich auch die kompletten Objekte nach unten spiegeln wenn ich bereits eine halbe Drehtür habe, oder muss ich wirklich Segment für Segment spiegeln? Ich würde mir einen "Spiegel-Vorgang" sparen.

2. Jetzt geht's etwas ins Detail, da wir auch noch die Glasscheibe darstellen. Die hat die selbe Kontur wie der Sockel. Das habe ich hinbekommen. Nur diesmal müssen die Enden miteinander verbunden sein (2 Bögen + 2 gerade Linien am Ende = Glasscheibe). Ich habe also Bögen und Linien gezeichnet und muss nun die gerade Linie stutzen (schon wieder stutzen....!) - kann ich hier mit Radius Null arbeiten um evtl. Variablen zu sparen?

3. Ich hab in der Hilfe gesucht konnte aber keine Anweisung schreiben die mir den Kreis (Radius + 45) auf Layer 7 setzt. Hab mehrere Varianten versucht, aber es hat nicht geklappt.

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. Aug. 2003 12: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 The VIP 10 Unities + Antwort hilfreich

zu 1. Wenn du dir die Objeke "gemerkt" hast (s.o.), dann ist es kein Problem, nimm einfach die ersten Objekte und die gespiegelten, und spiegel sie einfach. Da ist mir auch gleich etwas eingefallen, mach eine Collection und befülle sie mit deinen Objekten, dann kannst du alle Objekte deiner Collection drehen, spiegeln, etc.

zu 2. Versteh ich nicht ganz

zu 3.

Code:
Kreis.color=7

------------------
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: 12. Aug. 2003 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


Glas.zip

 
1. ok, probier ich mal. hab's verstanden und glaube das kann ich umsetzen.

2. ich hab ne Datei angehängt. Jetzt wo ich das eine Stunde später durchlese was ich geschrieben hab ist es in der Tat schwer oder gar nicht zu verstehen  

3. Ah, "color"...! ok, hat geklappt.

PS: Ist es nicht etwas lächerlich, dass man in einem CAD Forum keine DWGs direkt anhängen kann sondern über ZIP gehen muss?

[Diese Nachricht wurde von The VIP am 12. August 2003 editiert.]

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. Aug. 2003 13:29    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

zu 2. kein Problem, du hast ja schon die Punkte
Code:
Linie1.startpoint=Bogen1.startpoint
linie1.endpoint=bogen2.startpoint
linie2.startpoint=bogen1.endpoint
linie2.endpoint=bogen2.endpoint

oder, wenn du neue Linien zeichnen möchtest
Code:
dim Linie1 as acadline
dim Linie2 as acadline
set linie1=addlineex(bogen1.startpoint,bogen2.startpoint)
set linie2=addlineex(bogen1.endpoint,bogen2.endpoint)

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

[Diese Nachricht wurde von RoSiNiNo am 12. August 2003 editiert.]

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. Aug. 2003 08: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

und noch zwei Fragen (nerve ich eigentlich?  )

1. Kann ich hier auch Vorgabewerte hinterlegen die man nur noch bestätigen muss

Code:

ThisDrawing.Utility.GetInteger(vbCr & "Durchmesser: ")


Ich hätte gerne den Ø2000 als Standardeinstellung.


2. Wenn ich neben der Durchmessereingabe eine weitere Variable in das Makro einbauen will die der Benutzer angeben muss (in diesem Fall den Buchstaben G oder T der stellvertretend für eine Variante stehen soll), wie mach ich das?

Habe gedacht folgendes geht:

Code:

Dim TYP as String

TYP = ThisDrawing.Utility.GetString(vbCr & "Anlagentyp: ")



aber irgendwie frisst er das nicht.


PS: Das hier hat (natürlich) geklappt:

Code:

Linie1.startpoint=Bogen1.startpoint
linie1.endpoint=bogen2.startpoint
linie2.startpoint=bogen1.endpoint
linie2.endpoint=bogen2.endpoint


Ist super!

[Diese Nachricht wurde von The VIP am 13. August 2003 editiert.]

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: 13. Aug. 2003 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 Nur für The VIP 10 Unities + Antwort hilfreich

zu 1. geht schon.
zu 2. geht auch.

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

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

pan
Mitglied



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

Beiträge: 141
Registriert: 18.01.2003

erstellt am: 14. Aug. 2003 12:13    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

zu 1)
vieleicht die gute alte on error...
Sub test1()
Dim test As Integer
On Error GoTo in200:
test = ThisDrawing.Utility.GetInteger(vbCr & "Durchmesser: <200>")
Exit Sub
in200:
test = 200
End Sub

zu 2)
dir fehlt True oder False hinter Getstring. sh. in der Hilfe

Gruß Pan

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: 14. Aug. 2003 12: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 The VIP 10 Unities + Antwort hilfreich

@Pan
zu 2. versteh ich nicht, ich glaube er es wäre sinnvoller es mit "Utility.InitializeUserInput" zu erledigen, oder etwa nicht?

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

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: 14. Aug. 2003 12:55    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

Und noch besser wäre GetXX.dll von Bernd Cuder
------------------
Roland

[Diese Nachricht wurde von RoSiNiNo am 14. August 2003 editiert.]

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: 14. Aug. 2003 12:57    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

@Pan
zu 1. Was ist wenn ein User Esc gedrückt hat, nimmt es in deinem Beispiel doch auch 200, oder etwa nicht?

------------------
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: 19. Aug. 2003 11:05    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.

melde mich nach langer Zeit wieder zurück   Wir hatten hier ein bisschen viel Areit und ich musste das VBA Projekt ne Zeit ruhen lassen.
Bin ständig am erweitern und verbessern. Bin aber nun auf ein Hürde gestossen:

Ich habe hier ein Teil des Makros welches mir die Bögen an den entsprechenden Linie stutzt.

Code:

SP1_1 = Bogen1Temp.IntersectWith(Linie1, acExtendNone)
SP2_1 = Bogen1Temp.IntersectWith(Linie2, acExtendNone)
SP1_2 = Bogen2Temp.IntersectWith(Linie1, acExtendNone)
SP2_2 = Bogen2Temp.IntersectWith(Linie2, acExtendNone)

Wenn ich nun Linien habe die den Bogen nicht schneiden (weil der Boden zum Bespiel einen zu kleinen Winkel hat), wie muss das Makro dann aussehen. Oder anders gefragt wie dehne ich die Bögen zur nächsten geraden Linie?

Dachte zunächst es reicht, wenn ich hinten aus acExtendNone (heißt ja übersetzt "nicht strecken") einfach acExtendBoth (an beiden Enden strecken) mache. Hat aber nicht geklappt. Oder liegt es an dem IntersectWith?

Und Nr.2: Wie lösche ich das Ursprungsobjekt wenn ich es spiegeln will. Wenn ich also ein Rechteck um eine Achse spiegeln möchte, will aber dass es von der Uursprungsposition verschwindet und auf die andere Seite der Achse "verschoben"/gespiegelt wird .

[Diese Nachricht wurde von The VIP am 19. August 2003 editiert.]

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Dieses Thema ist 2 Seiten lang:   1  2

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