Autor
|
Thema: Attribut für Tragschienenlänge (1495 mal gelesen)
|
baumert Mitglied
Beiträge: 10 Registriert: 19.03.2008 Windows Rechner mit Windows XP SP2, E3.Series 2010-912 mit Schema, Cable und Panel-Lizenzen.
|
erstellt am: 25. Mrz. 2008 07:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich erstelle gerade ein Programm, dass mir die Gesamtlängen der einzelnen Kabelkanäle und der Tragschienen ausgibt. Bei den Kabelkanälen funktioiert es prima, ab ich bekomme die Länge für die Tragschienen nicht raus. Kennt jemand das Attribut, das die Länge der Tragschine enthält? Mit freundlichen Grüssen Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 27. Mrz. 2008 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Thomas, leider kann ich keinen Tipp geben, aber das hört sich ja interessant an. So ein Programm könnte ich auch gebrauchen Wie holst Du denn die Länge von den Kabelkanälen? ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumert Mitglied
Beiträge: 10 Registriert: 19.03.2008 Windows Rechner mit Windows XP SP2, E3.Series 2010-912 mit Schema, Cable und Panel-Lizenzen.
|
erstellt am: 27. Mrz. 2008 09:58 <-- editieren / zitieren --> Unities abgeben:
Hallo timmele, die Länge der Kabelkanäle hole ich über das Attribut "GetCableDuctLength()" heraus. Dieses Attrtibut wird bei jedem Bauteil ausgelesen. Ist ein Wert vorhanden, so wird der Bauteiltyp (in diesem Fall der entsprechende Kabelkanaltyp) ausgelesen, ist der Kabelkanal bereits in der Stüli vorhanden, so werden die Längen addiert, gibt es den Kabelkanal noch nicht in der Stüli, so wird er neu angelegt. Hintergrund: Bei uns wird in der Stüli jeder Kabelkanaltyp einmal mit der Gesamtlänge angegeben. Vielen Dank erst einmal... Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eldorado Mitglied
Beiträge: 73 Registriert: 12.06.2004
|
erstellt am: 29. Mrz. 2008 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Es gibt leider keine Methode, die die Länge einer Tragschiene direkt liefert. Aber es gibt einen Workaround über die Outline(s) eines solchen Bauteils: Code: Function GetMountLength( dev ) GetMountLength = 0 If( dev.IsMount() = 0 ) Then Exit Function Dim outcnt, outids, o, symcnt, symids, rot, pnts, xarr, yarr Dim out: Set out = CreateObject( "CT.Outline" ) Dim sym: Set sym = CreateObject( "CT.Symbol" ) outcnt = dev.GetOutlineIds( outids ) for o = 1 to outcnt out.SetId outids(o) symcnt = out.GetSymbolIds( symids ) If( symcnt <> 0 ) Then sym.SetId symids(1) rot = sym.GetRotation() End If if( out.GetType = 1 ) Then 'main outline pnts = out.GetPath( xarr, yarr ) Exit For end if Next Select Case rot Case "/2", "/6", "90.000000", "270.000000" GetMountLength = Abs(yarr(3) - yarr(1)) Case Else GetMountLength = Abs(xarr(2) - xarr(1)) End Select End Function
Frage mal im Support nach dem Wunsch Designer-5961. Gäbe es hierfür eine direkte Methode, wäre diese sicher performanter als der Workaround. Jede Kunden-Nachfrage erhöht die Priorität solcher Wünsche.Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumert Mitglied
Beiträge: 10 Registriert: 19.03.2008 Windows Rechner mit Windows XP SP2, E3.Series 2010-912 mit Schema, Cable und Panel-Lizenzen.
|
erstellt am: 31. Mrz. 2008 10:17 <-- editieren / zitieren --> Unities abgeben:
|
Dudla Mitglied Elektriker
Beiträge: 9 Registriert: 19.01.2010 E3.series 2014A Build 2014-1410 Version 14,20014,1410,0
|
erstellt am: 04. Mai. 2015 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Thomas, ich habe gerade die selben Probleme. In welchem Script und in welcher Funktion liest du das Attribut GetCableDuctLength() aus und wie hast du das Beispielscript von Eldorado implementiert? Bin für jede Hilfe Dankbar. Gruß Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 04. Mai. 2015 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Georg, GetCableDuctLength() ist eine Funktion im Device Interface und liefert die Länge eines Kabelkanals. Leider gibt es keine Funktion GetMountLength() für die Länge von Halteschinen dafür gibt es den oben beschriebenen Workaround. Ich vermute Thomas geht alle Betriebsmittel durch und holt sich vom Kabelkanal den Bauteilnamen und speichert sich diesen in einem Dictionary Key im Dictionary ist der Bauteilname und der Value ist die Länge. Ist der Bauteilname noch nicht im Dictionarydann addierst Du ihn mit der aktuellen Länge. Ist der Bauteile bereits enthalten, dann addierst Du die neue Länge auf die vorhandene. Hilfe zu Dictionaryz.B. hier: http://www.devguru.com/technologies/vbscript/13992 Damit bekommst Du schlußendlich eine Liste aller Kabelkanäle und die Gesammtlänge im Projekt Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dudla Mitglied Elektriker
Beiträge: 9 Registriert: 19.01.2010 E3.series 2014A Build 2014-1410 Version 14,20014,1410,0
|
erstellt am: 04. Mai. 2015 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Konfuzius, vielen Dank für die schnelle Antwort, leider habe ich keine Ahnung wo ich den Tipp ansetzten soll. In welcher Datei muss ich es einbinden bzw. wo finde ich das Objekt auf welches ich die Abfrage beziehen kann. Ich verlauf mich gerade glaub ich in den vielen Script-Dateien. Gruß Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 04. Mai. 2015 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
|
Dudla Mitglied Elektriker
Beiträge: 9 Registriert: 19.01.2010 E3.series 2014A Build 2014-1410 Version 14,20014,1410,0
|
erstellt am: 04. Mai. 2015 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Jörg, ich möchte es in das Standartscript einbauen, da ich die Informationen in der "Original" Stüli und auch in der Excel-Stüli benötige. Ich hangle mich gerade durch PartsMain, PartsExcel und PartsSheet.vbs. Wenn das mit den Längen vielleicht mal erledigt ist, kommt schon das nächste Problem auf mich zu. Zur besseren Kalkulation und Übersicht wird gewünscht, dass in der Originalen E3-Stückliste die Gesamtlänge steht, welche auch als Ersatzteilliste dienen soll, und zugleich in der Excel-Stückliste soll drin sein, in wie viele Teile und mit welchen Längen die Kanäle und die Hutschienen zu teilen sind. z.B. Kanal teilen in: 125 mm, 250mm, 150mm Tragschienne teilen in: 125mm, 250mm, 150mm Probleme über Probleme... Danke im Voraus. Gruß Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 258 Registriert: 06.02.2006
|
erstellt am: 07. Mai. 2015 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für baumert
Hallo Georg, mhh das könnte kompliziert werden. Mit der Standardstückliste kenn' ich mich nicht so gut aus. Ich versuch mich mal reinzudenken... Dazu komme ich vermutlich aber nicht so schnell. Sprich wenn jemand anders eine Idee hat ... jetzt ist die Zeit zu schreien Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |