Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Eigenes UCS mit VBA

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:  Eigenes UCS mit VBA (707 mal gelesen)
Benny4
Mitglied
Softwareentwickler


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

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2010
ZW-CAD 2012

erstellt am: 04. Apr. 2007 15:52    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


org.gif


so_ist.gif


so_soll.gif

 
Hallo,

ich komme mit dem eigenen UCS in VBA nicht ganz klar.

Habe mir hier sämtliche Beiträge durchgelesen, die Hilfe vesucht zu verstehen, aber irgendwie komm ich nicht weiter...

Ich habe folgendes vor:
Ich muss die Fräswege eines Falzes berechnen. Siehe Bild org.gif. Die schwarze Kontur gibt der Benutzer vor, anhand des Fräserdurchmessers berechne ich die inneren Linien (blau).

Das ist alles soweit auch kein Problem, solange dieser Falz in der X - Achse gezeichnet wurde.


Dieser Falz muss jetzt aber nicht nur in der X - Achse funktionieren, sondern in jedem beliebiegem UCS.


Ich habe mir das UCS mit dem Code in der Hilfe erstellt.

Code:

Dim ucsObj As AcadUCS
   
    Dim origin As Variant
    Dim xAxisPnt As Variant
    Dim yAxisPnt As Variant
   
    Dim startP As Variant
    Dim endP As Variant
   
    Dim startPV As Variant
    Dim endPV As Variant
   
    ' Define the UCS
    origin = ThisDrawing.Utility.GetPoint(, "Ursprung")
    xAxisPnt = ThisDrawing.Utility.GetPoint(origin, "X - Achse")
    yAxisPnt = ThisDrawing.Utility.GetPoint(origin, "Y - Achse")
   
    ' Add the UCS to the UserCoordinatesSystems collection
    Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(origin, xAxisPnt, yAxisPnt, "New_UCS")
    ThisDrawing.ActiveUCS = ucsObj
   
    ' Get the active viewport and make sure the UCS icon is on
    Dim viewportObj As AcadViewport
    Set viewportObj = ThisDrawing.ActiveViewport
    viewportObj.UCSIconOn = True
    viewportObj.UCSIconAtOrigin = True
    ThisDrawing.ActiveViewport = viewportObj

Die Benutzerauswahl sieht dann auch nocht gut aus, habe die Punkte so umgerechnet:

Code:

ucsPoint = ThisDrawing.Utility.TranslateCoordinates(firstPoint, acWorld, acUCS, False)

Die Punkte für die Innenkontur berechne ich dann, beginnend mit dem äußersten Punkt, in bestimmten Schritten nach innen. Das  heisst

X_Endpunkt = X_Endpunkt + i und so weiter...

Habe dann vor dem einzeichnen der Fräskontur alle Punkte mit TranslateCoordinates umgerechnet, die Fräswege werden aber immer noch in der X - Achse gezeichnet, und nicht im von mir bestimmten UCS.

Ich hoffe, ich habe das nicht zu kompliziert geschrieben. Für Anregungen und Tipps, wie ich da vorgehen kann, wäre ich sehr dankbar!

Pics im Anhang

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

Grüsse Benny

[Diese Nachricht wurde von Benny4 am 04. Apr. 2007 editiert.]

[Diese Nachricht wurde von Benny4 am 04. Apr. 2007 editiert.]

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 04. Apr. 2007 15: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 Benny4 10 Unities + Antwort hilfreich

Hi Benny,

Dazu benötigst du die Funktion "object.TranslateCoordinates", da Autocad hier immer im WKS arbeitet und rechnet.
Dazu solltest du hier im Forum einiges finden.

Gruß, Carsten

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

Benny4
Mitglied
Softwareentwickler


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

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2010
ZW-CAD 2012

erstellt am: 04. Apr. 2007 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

Hallo,

ja das dachte ich eigentlich auch.

So sollte es doch funktionieren:
Ich berechne die gesamten Punkte im WKS, und rechne sie vor dem einzechnen in den Modelspace mit TranslateCoordinates um!

Oder sehe ich da was falsch?

Hmmm, ich glaube jetzt bin ich etwas schlauer geworden. So ganz gecheckt habe ich glaub ich noch immer nicht, aber das Programm funktioniert...

------------------
Grüse Benny

[Diese Nachricht wurde von Benny4 am 05. Apr. 2007 editiert.]

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