Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Layout kopieren

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:  Layout kopieren (2614 mal gelesen)
Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 10. Feb. 2011 15: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

Hallo an Alle,

wie kann ich ein Layout mit VBA kopieren?
Danke für jeden Tipp.

Gruß, Theo

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 11. Feb. 2011 07:46    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 Theo37 10 Unities + Antwort hilfreich

Am einfachsten mit AutoCAD und (Send)Command "Layout" , Option "kopieren"

Ansonsten müßte man ein neues Layout erzeugen und alle Objekte aus dem bestehenden Layout kopieren
(Objekt lesen, und im neuen Layout erzeugen)

Geht es dir jetzt also um einen eigenen Layout-kopieren Befehl oder nur um das Ergebnis ?

So, gemessen an deinen Infos reicht diese Antwort vorerst, jetzt liegt es an dir konkreter zu werden.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

[Diese Nachricht wurde von cadffm am 11. Feb. 2011 editiert.]

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 11. Feb. 2011 08: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

Hallo,

ich habe auch schon an Sendcommand gedacht, möchte das aber nicht verwenden. Vom Effekt her sollte es schon so sein wie in deiner Codezeile oben. ich habe mal folgendes geschrieben (was natürlich nicht funktioniert):

      Set NewRegister = ThisDrawing.Layouts.Add(Fall(i).Name)
      NewRegister.TabOrder = i
      NewRegister.Block. = Fall(i).Register.Block
      NewRegister.CanonicalMediaName = Fall(i).Register.CanonicalMediaName
      NewRegister.CenterPlot = Fall(i).Register.CenterPlot
      NewRegister.ConfigName = Fall(i).Register.ConfigName
      NewRegister.PaperUnits = Fall(i).Register.PaperUnits
      NewRegister.PlotHidden = Fall(i).Register.PlotHidden
      NewRegister.PlotOrigin = Fall(i).Register.PlotOrigin
      NewRegister.PlotRotation = Fall(i).Register.PlotRotation
      NewRegister.PlotType = Fall(i).Register.PlotType
      NewRegister.PlotViewportBorders = Fall(i).Register.PlotViewportBorders
      NewRegister.PlotViewportsFirst = Fall(i).Register.PlotViewportsFirst
      NewRegister.PlotWithLineweights = Fall(i).Register.PlotWithLineweights
      NewRegister.PlotWithPlotStyles = Fall(i).Register.PlotWithPlotStyles
      NewRegister.ViewToPlot = Fall(i).Register.ViewToPlot
      NewRegister.UseStandardScale = Fall(i).Register.UseStandardScale
      NewRegister.StyleSheet = Fall(i).Register.StyleSheet
      NewRegister.StandardScale = Fall(i).Register.StandardScale
      NewRegister.ShowPlotStyles = Fall(i).Register.ShowPlotStyles

wobei Newregister das neue Layout sein soll und Fall(i).Register das vorhandene ist.
Wie kriege ich es hin daß wirklich eine kpl. Kopie erstellt wird? Mit allen Objekten und Ploteinstellungen und Allem.

Danke, Gruß, Theo

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 11. Feb. 2011 08: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 Theo37 10 Unities + Antwort hilfreich

ungetestet, aber was ist mit der Methode CopyObjects des Documents ?

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 11. Feb. 2011 08:46    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

CopyObject? hört sich gut an.
Kann ich damit Layouts kopieren?
Oder kann ich damit alle Objekte kopieren?

Gruß, Hermann

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 11. Feb. 2011 08: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 Theo37 10 Unities + Antwort hilfreich

ich verweis mal auf F1 und Eigeninitiative     .. du wolltest n Tipp , kein fertiges Programm

------------------
      - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 11. Feb. 2011 09:31    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 Thomas,
das mit der Eigeninitiative ist immer so ne Sache, bei recht wenig Ahnung. Ich bin mit CopyObjects selbst nicht weiter gerkommen. Aber "Copy is my Hobby". Ich habe folgendes bei Autodesk gefunden:

Public Function CopyLayout(Source As AcadLayout, TargetName As String) As AcadLayout
Dim Doc As AcadDocument
Set Doc = Source.Document
Dim Result As AcadLayout
Set Result = Doc.Layouts.Add(TargetName)
If Source.Block.Count > 0 Then
Dim Entities() As Object
ReDim Entities(0 To Source.Block.Count - 1)
Dim i As Integer
Dim Ent As AcadObject
i = 0
For Each Ent In Source.Block
Set Entities(i) = Ent
i = i + 1
Next
Doc.CopyObjects Entities, Result.Block
End If
Result.CopyFrom Source
Set CopyLayout = Result
End Function

Ich hab noch nicht viel getestet aber es scheint zu funktionieren.

Gruß, Theo

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 11. Feb. 2011 09: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 Nur für Theo37 10 Unities + Antwort hilfreich

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