| |
| 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: Löschen von Schriftkopf / Rahmen (4198 mal gelesen)
|
CW77 Mitglied Dipl. Ing.
Beiträge: 8 Registriert: 15.08.2008 AutoCAD Mechanical 2009, Inventor 2009, Vault 2009
|
erstellt am: 14. Jul. 2009 11:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Forengemeinde, ich habe folgendes Problem. Mittels VBA füge ich in eine Zeichnung Schriftkopf und Rahmen ein. Das sieht so aus: Code: Public Sub Schriftkopf() Dim symbb As McadSymbolBBMgr Set symbb = ThisDrawing.Application.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr") Dim tiBrdMgr As McadTitleBorderMgr Set tiBrdMgr = symbb.TitleBorderMgr
Dim tiBrdDesc As McadTitleBorderDescriptor Set tiBrdDesc = tiBrdMgr.NewDescriptor Dim tiBrdContext As McadTitleBorderContext Set tiBrdContext = tiBrdMgr.NewContext Dim brd As McadBorder Set brd = tiBrdDesc.Border brd.name = "akk_a3" Dim titl As McadTitle Set titl = tiBrdDesc.Title titl.name = "akk_zeko" tiBrdDesc.TitleBorderScale = Massstab1 Dim pos(0 To 2) As Double pos(0) = 0 pos(1) = 0 pos(2) = 0 tiBrdDesc.Position = pos Dim tiBrd As McadTitleBorder Set tiBrd = tiBrdMgr.CreateTitleBorder(tiBrdDesc, tiBrdContext) End Sub
An anderer Stelle möchte ich den vorhandenen Schriftkopf / Rahmen aus der aktiven Zeichnung löschen. Dazu ist grundsätzlich der Befehl: Code: tiBrdMgr.DeleteTitleBorder()
gedacht. Nur weiß ich leider nicht, was ich in die Klammer schreiben soll. Die Hilfe sagt da auch nicht besonders viel außer: Description Removes the specified title/border from the drawing. Syntax Public Function DeleteTitleBorder( _ ByVal titleBorder As McadTitleBorder _ ) As Boolean Parameters titleBorder Input title/border to be deleted See Also McadTitleBorderMgr Object Bin für jede Hilfe dankbar...
Gruß, Carsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 16. Jul. 2009 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für CW77
Hallo Carsten, ohne mal zu wissen mit welchen Programm (Systeminfo ausfüllen!) zu arbeitest handelt es sich ja mindestens um eine Zusatzapplikation. Ohne die zu kennen müsste die Syntax nach den Objektbezeichnungen so sein.
Code: tiBrdMgr.DeleteTitleBorder(tiBrd)
Wilfried Stelberg------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CW77 Mitglied Dipl. Ing.
Beiträge: 8 Registriert: 15.08.2008 AutoCAD Mechanical 2009, Inventor 2009, Vault 2009
|
erstellt am: 16. Jul. 2009 09:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Stelli1, Ich arbeite mit AutoCAD Mechanical 2009. Was du vorschlägst macht Sinn. Das habe ich auch schon probiert. Die Systemantwort darauf ist allerdings diese: Run-time error '438' Object doesn´t support this Property or method Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stechi Mitglied Informatiker
Beiträge: 75 Registriert: 17.01.2008
|
erstellt am: 28. Jul. 2009 08:28 <-- editieren / zitieren --> Unities abgeben: Nur für CW77
|
insidERR Mitglied 2/3D Konstruktion, VBA/.net/Android/Arduino Programmierung, EDV
Beiträge: 138 Registriert: 27.08.2007 Win10 x64 Pro, ACAD Mech.2024, Inventor 2024 Sim., Vault Pro 2024, VBA/.NET, Android Studio, Arduino
|
erstellt am: 24. Aug. 2009 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für CW77
|
Ex-Mitglied
|
erstellt am: 24. Aug. 2009 12:42 <-- editieren / zitieren -->
Hi, @insidERR: Zitat: Zeichnungsrahmen und Schriftkopf sind doch Blöcke
Ich nehme an, dass es rund um dieses Problem relativ 'leise' in diesem Thread ist, da das verwendete Objektmodell von CW77 eben Mechanical-eigene Objekte sind (siehe die Deklarationen, die allesamt nicht AutoCAD-Basisojekte sind). Wenn Du Mechanical hast, kannst Du doch seinen Code mal ausprobieren, gibt's bei Dir den gleichen Fehler? Wenn es denn doch AutoCAD-Blöcke sind, dann sollte man acht geben, ob durch löschen einer solchen Blockreferenz nicht die interne Struktur von Mechanical 'angegriffen wird'. - alfred - ------------------ www.hollaus.at |
CW77 Mitglied Dipl. Ing.
Beiträge: 8 Registriert: 15.08.2008 AutoCAD Mechanical 2009, Inventor 2009, Vault 2009
|
erstellt am: 24. Aug. 2009 13:02 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, das Problem hat sich mittlerweile erledigt. Der Fehler war, dass ich versucht habe, den Schriftkopf und den Rahmen zu löschen, den ich gerade eingefügt hatte (mit demselben Modul). Das geht nicht. Macht man für das Löschen ein separates Modul, lassen sich die Objekte auch löschen. Vielen Dank für eure Mühe. Carsten Wirtz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bassenc Mitglied Student
Beiträge: 26 Registriert: 02.06.2004 WinXP32Prof ACADMech2007 ACADMechMech2009 SP3 SolidEdge 20
|
erstellt am: 28. Jul. 2010 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für CW77
Hallo, ich versuchs einfach mal hier da ich in ähnlichem Kontext Probleme mit dem Erstellen von Zeichnungen. Der Code ist nahezu identisch mit dem hier von CW77 gepostet, also wie folgt: Code:
Dim ADoc As Autodesk.AutoCAD.Interop.AcadDocument ADoc = ACadApp.Documents.Add(IO.Path.GetFileName(theDWG_Data.AcadDrawingTemplate)) SymBBMgr = ADoc.Application.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr")Dim BdMgr As SymBBAuto.McadTitleBorderMgr BdMgr = SymBBMgr.TitleBorderMgr Dim TBDesc As SymBBAuto.McadTitleBorderDescriptor TBDesc = BdMgr.NewDescriptor Dim BdContext As SymBBAuto.McadTitleBorderContext BdContext = BdMgr.NewContext Dim Border As SymBBAuto.McadBorder Border = TBDesc.Border Border.Name = "din_a4" 'theDWG_Data.GenFormatBorderName & ".dwg" Dim Title As SymBBAuto.McadTitle Title = TBDesc.Title Title.Name = "Gentitle" 'theDWG_Data.GenSchriftFeldName & ".dwg" TBDesc.TitleBorderScale = theDWG_Data.GenScaleDbl Dim pos(0 To 2) As Double pos(0) = 0 pos(1) = 0 pos(2) = 0 TBDesc.Position = pos Dim TitleBrd As SymBBAuto.McadTitleBorder TitleBrd = BdMgr.CreateTitleBorder(TBDesc, BdContext) 'BdMgr.CreateTitleBorder(TBDesc, BdContext)
ich bekomme aber bei Code: TitleBrd = BdMgr.CreateTitleBorder(TBDesc, BdContext)
also beim erstellen des Rahmens etc. eine Exception: Zitat: Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
Code ist in vb.net, unter Mechanical 2007 hat alles wunderbar funktioniert. Wiess villeicht jemand Rat? Vielen Dank im Voraus. bassenc
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |