Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Linentyp ändern

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:  Linentyp ändern (687 mal gelesen)
Boehri
Mitglied



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

Beiträge: 80
Registriert: 07.04.2008

erstellt am: 02. Dez. 2010 10:21    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 zusammen,

ich stehe mit vb.net noch ziemlich am Anfang und möchte die LinetypTable durchlaufen , den Namen auswerten und gegen einen anderen Linientyp ersetzen. Danach soll die Farbe und die Linienstärke ebenfalls geändert werden.

Folgenden Code habe ich mir erarbeitet :-).

Code:

    <CommandMethod("p2m")> _
Public Sub LinientypPit2Mep()

        '' Get the current document and database
        Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim acCurDb As Database = acDoc.Database

        '' Start a transaction
        Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
            Try

                '' Open the Linetype table record of the current linetype for write     
                Dim acLineTypTblRec As LinetypeTableRecord
                acLineTypTblRec = acTrans.GetObject(acCurDb.Celtype, _
                                                    OpenMode.ForWrite)

                For Each acObjID As ObjectId In acLineTypTblRec <- Hier scheitere ich schon
                    Select Case acLineTypTblRec.Name
                        Case " xxxxx "
                            acLineTypTblRec.Name = " yyyyy "
                    End Select

                Next

                acTrans.Commit()


            Catch ex As Autodesk.AutoCAD.Runtime.Exception

                acDoc.Editor.WriteMessage(ex.Message)
            End Try
        End Using

    End Sub



Vielleicht kann mir jemand bei der Lösung helfen.
Vielen Dank!

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


Ex-Mitglied

erstellt am: 02. Dez. 2010 21:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> und möchte die LinetypTable durchlaufen

Das bezieht sich aber nicht auf Deinen Code, oder? Denn in Deinem CodeSnippet versuchst Du, Items eines Linientyps zu bekommen, und sowas gibt es nicht. Der LineTypeTableRecord hat gerade mal ein paar Eigenschaften, aber keinen Enumerator, sprich da gibt's keine Subelemente, die Du durchlaufen kannst.

Durchlaufen der LineTypeTable und Auswertung des Linientypnamens wäre folgendermassen:

Code:
Dim tLTTable As LinetypeTable = CType(acTrans.GetObject(acCurDb.LinetypeTableId, OpenMode.ForRead), LinetypeTable)
Dim tLTTableEnum As SymbolTableEnumerator = tLTTable.GetEnumerator
Do While tLTTableEnum.MoveNext
  Dim tLTTableRecID As ObjectId = tLTTableEnum.Current
  If tLTTableRecID.IsValid AndAlso (Not tLTTableRecID.IsErased) Then
      Dim tLTRec As LinetypeTableRecord = CType(acTrans.GetObject(tLTTableRecID, OpenMode.ForRead), LinetypeTableRecord)
      Debug.Print(tLTRec.Name)
  End If
Loop


>> Danach soll die Farbe und die Linienstärke ebenfalls geändert werden

Da bin ich nicht sicher, ob wir vom gleichen sprechen. Denn das Ändern eines Linientyps führt nicht zur Änderung der Farbe oder einer Linienstärke, Farbe und Linienstärke sind keine Eigenschaft von Linientypdefinitionen, sondern Eigenschaften von Geometrieelementen.

- alfred -

------------------
www.hollaus.at

Boehri
Mitglied



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

Beiträge: 80
Registriert: 07.04.2008

erstellt am: 03. Dez. 2010 13:12    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

Sorry, sorry,

ich habe einen Denkfehler gemacht. Ich möchte nun nicht die Linetypetable durchlaufen sondern die Layertable. Hier möchte ich nach dem Linientyp suchen,  und dann den Linientyp ,die Layerfarbe und die Linienstärke ändern.
Grund hierfür ist folgender:
Linien in vorhandene Zeichnungen wurden alle mit komplexen Linientypen erstellt. Durch eine Revision unserer CAD-Richtlinien sind die Linientypen sowie Faben und Strichstärken geändert worden.
Trotzdem vielen Dank!
Wenn du mir einen Denkanstoss geben könntest wäre ich dir sehr dankbar.

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


Ex-Mitglied

erstellt am: 03. Dez. 2010 18:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

das Konzept ist das gleiche, Du holst Dir die LayerTable, erzeugst daraus den Enumerator und scanst durch.
Tausche oben LineTypeTable gegen LayerTable, LineTypeTableRecord gegen LayerTableRecord und Du bist, wo Du hinwolltest. Zumindest sehe ich sonst keine Frage in Deiner Antwort.

- alfred -

------------------
www.hollaus.at

Boehri
Mitglied



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

Beiträge: 80
Registriert: 07.04.2008

erstellt am: 14. Dez. 2010 08:59    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 Alfred,

vielen Dank, hat prima geklappt.

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