Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  2D CAD Editor
  DraftSight-API kein Cast von Object to ExternalReference

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
Autor Thema:   DraftSight-API kein Cast von Object to ExternalReference (591 mal gelesen)
Kricher
Mitglied
Entwickler


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

Beiträge: 263
Registriert: 10.09.2004

erstellt am: 18. Aug. 2016 16:41    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

Hi Ihr,

ich versuche nachfolgenden Code zum laufen zu bringen und scheitere immer an dem nachfolgenden Cast:

ExternalReference dsExtRef = entityItem as ExternalReference;

Dabei gebe ich ja den Typ über dsObjectType_e.dsExternalReferenceType an und ich bekomme auch ein Array mit der erwarteten Anzahl zurück!
Andere Typen wie z.B. ReferenceImage usw. gehen?!

Es geht mir letztlich um die Anzahl "Verbauungen" jedes einzelnen XRefs. Aus diesem Grund kann ich hier nicht über doc.GetExternalReferences() gehen, da ich da immer nur ein Vorkommen für jedes XRef bekomme.

#########################################################
Model model = doc.GetModel();
SketchManager dsSketchMgr = model.GetSketchManager();
//GetSselection Manager
SelectionManager dsSelectionMgr = doc.GetSelectionManager();

//Get selection filter
SelectionFilter dsSelectionFilter = dsSelectionMgr.GetSelectionFilter();

//Clear selection filter
dsSelectionFilter.Clear();

dsSelectionFilter.AddEntityType(dsObjectType_e.dsExternalReferenceType);
dsSelectionFilter.Active = true;

object entityTypes;
object entityObjects;

string[] layerNames = Misc.GetLayers(doc);

//Get externalref entities
dsSketchMgr.GetEntities(dsSelectionFilter, layerNames, out entityTypes, out entityObjects);

object[] dsEntities = (object[])entityObjects;
if (entityObjects != null)
{
    foreach (object entityItem in dsEntities)
    {
      ExternalReference dsExtRef = entityItem as ExternalReference;
      if (dsExtRef != null)
      {
        string nFile = dsExtRef.PathName;
        //etc.
      }
    }
}
#########################################################

Hat jemand eine Idee?

CU

Kricher

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

Kricher
Mitglied
Entwickler


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

Beiträge: 263
Registriert: 10.09.2004

Solid Edge (ST6 - SE2019)
SolidWorks (2014 - 2019)
DraftSight 2016 und 2018
Creo Elements Direct Modeling
(SolidDesigner V17, V18, V19, V20)
Inventor 2018
ACAD/Mechanical 2018

erstellt am: 18. Aug. 2016 17: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

Ist wohl ein Bug in der API von DraftSight 
Ich bekomme anstelle aller XRefs alle BlockInstance zurück.

Hierbei ist egal ob ich den Filter auf:

dsSelectionFilter.AddEntityType(dsObjectType_e.dsBlockInstanceType);

oder auf

dsSelectionFilter.AddEntityType(dsObjectType_e.dsExternalReferenceType);

setze. Das Ergebnis ist in beiden Fällen das gleiche, nämlich ein Array der BlockInstances :-(
Hat jemand die Möglichkeiten einen CR bei SolidWorks dafür zu öffnen?
Ich habe im Moment nur die 30 Tage Testlizenz zum Evaluieren der API für unsere Zwecke.

CU

Kricher

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

Kricher
Mitglied
Entwickler


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

Beiträge: 263
Registriert: 10.09.2004

erstellt am: 18. Aug. 2016 18:25    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 jetzt wohl eine Nutzbare Lösung.
Da ich nicht direkt über den Filter an die XRefs komme, suche ich jetzt erst nach den Blockdefinitions und hole mir von da die externen Referenzen.
Das scheint dann zu gehen.
Auf diese Weise könnte man dann eine BOM aus der Verbauungsstruktur über DWG bauen.
Ich bin also erst mal zufrieden ;-)

CU

Kricher

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