Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  C# AddIn Schriftfeld tauschen

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
  
Neue Web-Applikation: Cideon Sparify - Ersatzteilmanagement neu gedacht, eine Pressemitteilung
Autor Thema:  C# AddIn Schriftfeld tauschen (2622 mal gelesen)
lhiapgpeonk
Mitglied


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

Beiträge: 4
Registriert: 21.08.2012

Inventor 2011, Win 7 x64, Visual Studio 2008/2010

erstellt am: 30. Aug. 2012 14:14    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

Hallöchen allerseits!

Ich habe ein mittelgroßes Problem. Ich möchte mithilfe meines Addins das Schriftfeld der aktuellen Zeichnung durch ein neues ersetzen.
Das alte zu löschen klappt. Ebenso klappt es, ein neues Schriftfeld einzufügen, welches KEINE Angeforderten Eingaben beinhaltet.

Sobald ich aber Angeforderte eingaben habe verschluckt er sich. Es sind 6 Eingaben die Angefordert werden.

private string[] GeforderteEingaben = new string[6];

//Geforderte Eingaben mit Wwerten füllen

foreach (Sheet sh in ndDoc.Sheets)
            {
                sh.TitleBlock.Delete();
                sh.AddTitleBlock(tBlockEngl,TitleBlockLocationEnum.kBottomRightPosition,GeforderteEingaben);
            }

Bei der Erstellung des Codes habe ich mich an der API-Hilfe entlanggehangelt (die irgendwie nur VB.net zu kennen scheint *grr*).

Als Fehler bekomme ich folgenden:
Message = "Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))"

Kann mir irgendjemand helfen?

Ach ja: Dringend! ;-) ;-) ;-)

Grüße
Hagen Lippok

[Diese Nachricht wurde von lhiapgpeonk am 30. Aug. 2012 editiert.]

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

lhiapgpeonk
Mitglied


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

Beiträge: 4
Registriert: 21.08.2012

Inventor 2011, Win 7 x64, Visual Studio 2008/2010

erstellt am: 30. Aug. 2012 15: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

Habe mal die Code-Tags rausgenommen. Kann dafür deine Antwort nicht sheen (nur indem ich über die Sufu nach deinem Namen suche).
Spinnt das Forum?

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

lhiapgpeonk
Mitglied


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

Beiträge: 4
Registriert: 21.08.2012

Inventor 2011, Win 7 x64, Visual Studio 2008/2010

erstellt am: 30. Aug. 2012 16:54    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

Hat sich erledigt!

(Theoretisch kann man das Thema löschen?)

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

invhp
Ehrenmitglied V.I.P. h.c.
MB Techniker, AE, WKZmacher



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

Beiträge: 5552
Registriert: 16.05.2002

(fast) alles, was Autodesk im Mechanikbereich anbietet ;)

erstellt am: 30. Aug. 2012 17:00    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 lhiapgpeonk 10 Unities + Antwort hilfreich

Was ist die Lösung? Auch wenn du selbst eine Lösung findest kannst du sie posten!

------------------
Grüsse
Jürgen
Inventor FAQ
Inventor eBook 1577 Seiten
www.dressler.biz
Autodesk Inventor Certified Expert

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



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

lhiapgpeonk
Mitglied


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

Beiträge: 4
Registriert: 21.08.2012

Inventor 2011, Win 7 x64, Visual Studio 2008/2010

erstellt am: 31. Aug. 2012 08:04    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

Hallöchen!

Ok, stimmt, hast du recht. (Immerhin scheint der Thread jetzt zu funktionieren ;-))

Code:
        private void Zeichnung_Uebersetzen()
        {
            string Pfad, Neuerpfad;
            DrawingDocument ndDoc; //Neues Zeichnungsdokument
            DrawingDocument vdDoc; //Zeichnungsvorlage
            TitleBlockDefinition tBlockEngl; //Titelblock
            pSetCustom["Bezeichnung_Englisch"].Value = txt_Bezeichnung.Text; //Englische Bezeichnung in benutzerdefinierte iProperty (Referenziertes Bauteil)
            GeforderteEingaben[0] = txt_Mass.Text; //Ausfüllen der angeforderten Eingaben
            GeforderteEingaben[1] = txt_Stk.Text;
            GeforderteEingaben[2] = txt_Norm.Text;
            GeforderteEingaben[3] = txt_Roh.Text;
            GeforderteEingaben[4] = txt_Bemerkung.Text;
            GeforderteEingaben[5] = txt_Mat.Text; //Material nur, wenn Exot, der nicht in den Stilen drin ist
            GeforderteEingaben[6] = "leer"; //Irgendwie muss ein leeres Feld dabeisein
           
            refdoc.Update(); //Referenziertes Bauteil (Baugruppe) updaten => iProperty
            refdoc.Save(); //Referenziertes Bauteil speichern

            Pfad = System.IO.Path.GetDirectoryName(dDoc.FullFileName); //Speicherort von deutscher Zeichnung
            Neuerpfad = Pfad + "\\Englisch"; //Speicherort für alle Englischen Zeichnungen eines Ordners
            if (System.IO.Directory.Exists(Neuerpfad) == false)
            {
                System.IO.Directory.CreateDirectory(Neuerpfad); //Ordner Englisch anlegen wenn noch nicht existent
            }
            Neuerpfad = Neuerpfad + "\\" + System.IO.Path.GetFileNameWithoutExtension(dDoc.FullFileName) + "_engl.idw"; //Neuer Dateiname
            dDoc.SaveAs(Neuerpfad,true); //Deutsche Zeichnung unter neuem Namen speichern
            ndDoc = (DrawingDocument)ThisApplication.Documents.Open(Neuerpfad, true); //und öffnen

            try
            {
                tBlockEngl = dDoc.TitleBlockDefinitions["Englisch"]; //Versuchen Titelblock aus Zeichnungsressourcen zu laden
            }
            catch (Exception e) //wenn er nicht vorhanden ist
            {
                vdDoc = (DrawingDocument)ThisApplication.Documents.Open(ThisApplication.FileLocations.TemplatesPath+"Norm1.idw",false); //Zeichnungsvorlage öffnen
                tBlockEngl = vdDoc.TitleBlockDefinitions["Englisch"].CopyTo((_DrawingDocument)ndDoc,true); //Titleblock in Englisches Dokument kopieren
                vdDoc.Close(true); //Vorlage wieder schließen               
            }

            foreach (Sheet sh in ndDoc.Sheets) //Auf jedem Zeichnungsblatt
            {
                sh.TitleBlock.Delete(); //Bestehendes Schriftfeld löschen
                sh.AddTitleBlock(ndDoc.TitleBlockDefinitions["Englisch"],System.Reflection.Missing.Value,GeforderteEingaben); //Englisches Schriftfeld hinzufügen
            }
            ndDoc.Save(); //Englische Zeichnung speichern
        }


War eigentlich ein dummer Fehler meinerseits. Ich habe versucht den Titleblock aus einer Variablen hinzuzufügen und nicht aus den Zeichnungsressourcen. Außerdem machen mich diese angeforderten Eingaben Kirre. Der Will irgendwie ein Array haben, was ein Feld größer ist als nötig ?!

Ich hoffe, ihr könnt mit der Lösung was anfangen!

Grüße
Hagen Lippok

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)2024 CAD.de | Impressum | Datenschutz