Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Versetzen / .offset welche Seite?

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Versetzen / .offset welche Seite? (80 / mal gelesen)
otm
Mitglied
Bauingenieur


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

Beiträge: 190
Registriert: 26.08.2009

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

erstellt am: 30. Okt. 2024 22: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

Liebes Forum,

ich möchte ein Objekt um einen Wert w, x-mal auf die Seite y versetzen.
Dazu klicke ich das zu versetzende Objekt an, einen Punkt auf der Seite auf die das Objekt versetzt werden soll.

Woher weiß ich das Vorzeichen des Versatzes?
Bzw. wie bekomme ich bitte aus dem Punkt die Seite des Objekts?

Das habe ich bis jetzt und bis auf das Vorzeichen läuft es auch.

Code:

Sub Vers2(strVersatz As String, Optional strLayName As String, Optional strRGB As String, Optional intAnz As Integer = 1)
    'Linie um strVersatz versetzen. Neues Objekt den Layer strLayer zuweisen, Farbe strRGB geben. _
     Ursprüngliches Obj insgesamt intAnz mal versetzen
    'Beispiel:
    'E: strVersatz = "0.3"
    '   strLayName = "Layer1"
    '   strRGB = "RGB:255,240,240"
    '   intAnz = 3 ... wie oft soll die Linie versetzt werden?
   
' Offset: Arc, Circle, Ellipse, Line, LWPolyline, Polyline, Spline, XLine
    'Objekt anklicken, das versetzt werden soll
    ThisDrawing.Utility.GetEntity obj, ptA, "Objekt wählen"
   
    'Punkt auf Seite anklicken, auf die versetzt werden soll
    ptS = ThisDrawing.Utility.GetPoint(, "Punkt auf Seite klicken")

    '...

    'Vorzeichen des Versatzes bestimmen
    '...?

    For intI = 1 To intAnz
        offsetObj = obj.Offset(dblVersatz) '0,25 Komma!

        For intJ = LBound(offsetObj) To UBound(offsetObj)
            Set obj = offsetObj(intJ)
            '...
            obj.Update
           
        Next intJ       
    Next intI
End Sub



IN der Hilfe steht:

Zitat:

The distance to offset the object.
The offset can be a positive or negative number, but it cannot equal zero.
If the offset is negative, this is interpreted as being an offset to make a "smaller" curve (that is, for an arc it would offset to a radius that is "Distance less" than the starting curve's radius).
If "smaller" has no meaning, then it would offset in the direction of smaller X, Y, and Z WCS coordinates.

Für den Kreis/Bogen ist das klar.
Aber, wie ermittle ich bei einer PL ob die X, Y, Z WCS-Koordinaten größer/kleiner sind?

Euch schon mal danke für's Mitdenken.


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

[Diese Nachricht wurde von otm am 31. Okt. 2024 editiert.]

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2812
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 31. Okt. 2024 11: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 otm 10 Unities + Antwort hilfreich

Hallo Christian,
Bei einer Polylinie würde ich zunächst einmal das Lot auf die Polylinie machen (durchsuchen der einzelnen Abschnitte). Über den Winkel von Start- und Endpunkt des Abschnitts und den Winkel von getippten Punkt und Startpunkt sieht man dann ob links oder rechts.

Grüße
Klaus 

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

otm
Mitglied
Bauingenieur


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

Beiträge: 190
Registriert: 26.08.2009

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

erstellt am: 31. Okt. 2024 13: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 Klaus,

danke für den Tipp.

Ich hatte gehofft, es geht mit ein bisschen weniger Handarbeit.
Aber dann werde ich das mal so angehen.

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

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