| |
| 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
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 10. Feb. 2011 15:22 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 11. Feb. 2011 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
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
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 11. Feb. 2011 08:10 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 11. Feb. 2011 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
|
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 11. Feb. 2011 08:46 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 11. Feb. 2011 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
|
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 11. Feb. 2011 09:31 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 11. Feb. 2011 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
|