Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Massstab von Layout -Ansichtsfenster

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:  Massstab von Layout -Ansichtsfenster (1699 mal gelesen)
Pitsch52
Mitglied
Mechaniker /Konstrukteur


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

Beiträge: 44
Registriert: 03.01.2005

erstellt am: 28. Aug. 2005 16:03    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 Leute

(ACAD2005 unter Windows2000 Professional)

Ich habe ein Layout auf dem habe ich mehrere Ansichtsfenster platziert. Alle Fenster zeigen aber ein Detail der Zeichnung in einem anderen Massstab (1:1 / 2:1 / 1:2 etc.).
Auch wenn nur ein Ansichtsfenster besteht, hat das einen bestimmten Anzeigemassstab (zB. 1:2)
Wie komme ich in VBA an den entsprechenden Wert des jeweils activen Ansichtsfenster?
Ich sollte diesen Wert in eine Variable einlesen, um Ihn dann im Programm weiterverwenden zu können.

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 28. Aug. 2005 16: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 Pitsch52 10 Unities + Antwort hilfreich

Hallo ....

Code:

Dim pview As AcadPViewport

Set pview = ThisDrawing.ActivePViewport
MsgBox "Maßstab = " & pview.CustomScale


Das Verhältnis kann dann errechnet werden.

Stelli1

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

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 28. Aug. 2005 16: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 Nur für Pitsch52 10 Unities + Antwort hilfreich

Hi,

tippe mal im DF:

Code:

?thisdrawing.ActiveLayout.Block.Item(1).customscale
10,0000000602102


Das ist erstmal das was du suchst.
Du musst natürlich sicherstellen, ob Typeof Item(i) IAcadPViewport2 ist, also IMHOIn my humble oppinion (Meiner Meinung nach) via Schleifchen.
Aber am besten Du machst einfach mal sowas:
Code:

sub x()
  dim l as acadlayout
  set l=thisdrawing.activelayout
  'stop
end sub

Und nun im Lokalfenster dein Object 'l' samst Unterobjekten mal unter die Lupe nehmen,
da steht [fast] alles drinnen, was man so braucht ;-)

Gruss Nancy 

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

Pitsch52
Mitglied
Mechaniker /Konstrukteur


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

Beiträge: 44
Registriert: 03.01.2005

erstellt am: 29. Aug. 2005 20:26    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
Vorap mal - Danke für die Antworten!
Doch gibt die Methode von Stelli1 nur den Gesamtmassstab, der bei der erstellung der Layout-Seite eingestellt wurde zurück, unabhängig von einem Ansichtsfenster.
Die Methode von startrek Funktioniert sehr gut, solange auf dem Layout nur ein Ansichtsfenster vorhanden ist. Sobald mehrere Ansichtsfenster angelegt werden, ist es nicht mehr möglich die einzelnen Fenster anzusprechen. Im abschnitt Block, sind schon Items zu sehen, die meiner Ansicht nach auf Ansichtsfenster hin deuten. Doch beim Versuch, ein anderes Item als Nr.1 anzusprechen, erscheint nur eine Fehlermeldung, das eine Methode nicht auf diese weise verwendet werden darf.
Wenn ich direkt eine Bemassung in einem Ansichtsfenster einsetze, funktioniert das ja auch, und sogar noch unabhängig vom eingestellten Massstab. Also muss es eine Methode geben, womit die einzelnen Ansichtsfenster unabhängig von einander bearbeitet werden können.
Nur ist die Frage, ob VBA diese überhaupt zur Verfügung stellt?

Mit freundlichen Grüssen!  Pitsch

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 30. Aug. 2005 12:16    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 Pitsch52 10 Unities + Antwort hilfreich

Hi Pitsch,

bei mir tut sowas in der Art:

Code:

Sub x()
    Dim lay As AcadLayout, i%
    Set lay = ThisDrawing.ActiveLayout
    For i = 0 To lay.Block.Count - 1
        If TypeName(lay.Block.Item(i)) = "IAcadPViewport2" Then _
        Debug.Print i, lay.Block.Item(i).CustomScale
    Next
End Sub

Gruss Nancy

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

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

Hallo pitsch,

Lege mal ein paar Ansichtsfenster im Layout an.

Code:

Dim Pview As AcadPViewport
Dim Layout As AcadLayout
Dim Entity As AcadEntity
Dim Anzahl As Integer

ThisDrawing.ActiveSpace = acPaperSpace
Set Layout = ThisDrawing.ActiveLayout

' Für jedes Entity im Layout
For Each Entity In Layout.Block
    If Entity.EntityType = acPViewport Then
       ' Erster Viewport ist das Papier
       Anzahl = Anzahl + 1
       If Anzahl > 1 Then
            Set Pview = Entity
            Pview.CustomScale = Pview.CustomScale * 1.2
        End If
    End If
Next Entity
ThisDrawing.Regen acAllViewports


Das Script ändert den Maßstab im jedem der angelegten  Ansichtsfenster um einen Faktor.

Gruss
Stelli1

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

[Diese Nachricht wurde von Stelli1 am 31. Aug. 2005 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