Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  VBS-Methode Blocknameänderung

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:  VBS-Methode Blocknameänderung (1035 mal gelesen)
JochenR
Mitglied



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

Beiträge: 26
Registriert: 08.09.2015

erstellt am: 11. Aug. 2017 06:57    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 vor dem Problem, dass ich bei einem Block, den ich zuvor mit loadandPlaceComponent gesetzt habe, nicht per Methode umbenennen kann. Also ich würde gerne Art/Zählnummer per Skript abändern.


Ich dachte erst ich kann das der Methode loadandPlaceComponent direkt mitgeben:

LoadAndPlaceComponent ( name, assignment, location, comp, vers, wirename, after, options )

name: Device designation of the device. When entering an empty string, the device is automatically assigned. This also applies, if the device is already available.

Das funktioniert aber leider nicht.

Mit welcher Methode kann ich das machen?

Ich hoffe ihr könnt mir weiterhelfen.

Viele Grüße
Jochen

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 11. Aug. 2017 13:07    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 JochenR 10 Unities + Antwort hilfreich

Hallo Jochen,

ret = dev.LoadAndPlaceComponent( "XXX","ABC","DEF", "MyBlockCmp", "CCCC", "", 0, 0 )

funktioniert bei mir ohne Probleme?!?

ret ist dann die ID des Blocks.

Gruß Jörg

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

JochenR
Mitglied



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

Beiträge: 26
Registriert: 08.09.2015

erstellt am: 11. Aug. 2017 13:18    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 Jörg,

danke für deine Antwort.

Also ich habe soeben dein Beispiel übernommen. Leider ändert sich der Name nicht auf das was im ersten Übergabeparamter steht. Also in meinem Beispiel habe ich:

ret = dev.LoadAndPlaceComponent( "B2","ABC","DEF", "A001", "CCCC", "", 0, 0 )

In der Datenbank heißt der Block "A001" und hat eben auch das als Art/Zählnummer. Beim setzen möchte ich das "A001" automatisch in "B2" geändert wird. Anlagenkennzeichen und Ortkennzeichen sind unwichtig.

Ein wundert mich, dass unter Symboleigenschaften Art/Zählnummer gesperrt ist, ich haber unter Betriebsmitteleigenschaften die ändern kann. Also eigentlich sind es Teilschaltungen. Wenn ich mit dem Curser über die Teilschaltung gehe, erscheint aber "Block: A001".

Hat das damit zu tun?

Gruß
Jochen

[Diese Nachricht wurde von JochenR am 11. Aug. 2017 editiert.]

[Diese Nachricht wurde von JochenR am 11. Aug. 2017 editiert.]

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 11. Aug. 2017 14:42    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 JochenR 10 Unities + Antwort hilfreich

Hi Jochen,
Die Symboleigenschaften sind bei mir auch ausgegraut.. schau mal in den Betriebsmitteleigenschaften nach. Kann es sein, dass Du schon einen Block mit dem selben Betriebsmittelkennzeichen im Projekt hast.
Du machst ja vorher hoffentlich kein Dev.Create ;-)

Welche E³. Version hast den den genau? Welches Betriebsmittelkennzeichen  wird den vergeben in deinem Fall? Vielleicht "-A1" ?

Gruß Jörg

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

JochenR
Mitglied



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

Beiträge: 26
Registriert: 08.09.2015

erstellt am: 11. Aug. 2017 14:49    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

Ach, die Gegenprobe hat es bestätigt. Mit Teilschaltungen geht es nicht, irgendwie auch logisch...Gibt es eine Methode, mit der ich das BMK nachträglich ändern kann?


[Diese Nachricht wurde von JochenR am 11. Aug. 2017 editiert.]

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 11. Aug. 2017 15:13    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 JochenR 10 Unities + Antwort hilfreich

Hi Jochen,
dev.SetName() ist Dein Freund 
Gruß Jörg

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

JochenR
Mitglied



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

Beiträge: 26
Registriert: 08.09.2015

erstellt am: 11. Aug. 2017 15:39    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 Jörg,

ich habe folgendes probiert:

Set e3 = CreateObject("CT.Application")
Set prj = e3.CreateJobObject
Set dev = prj.CreateDeviceObject


ret = dev.LoadAndPlaceComponent( "B2","ABC","DEF", "A001", "CCCC", "", 0, 0 )
dev.setName("B2")

Set prj = Nothing
Set e3 = Nothing
Set dev = Nothing

Das führt aber leider nicht zum Erfolg. Weißt du woran es liegt?

Danke für deine Hilfe.

Gruß
Jochen

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

JochenR
Mitglied



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

Beiträge: 26
Registriert: 08.09.2015

erstellt am: 11. Aug. 2017 18:24    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

Ich habe eine akzeptable Lösung gefunden und zwar wähle ich im ersten Schritt mit loadandplacecomponent die Teilschaltung mit folgendem Skript:

Code:
Set e3 = CreateObject("CT.Application")
Dim prj
Set prj = e3.CreateJobObject
Set dev = prj.CreateDeviceObject

ret = dev.LoadAndPlaceComponent( "0","ABC","DEF", "A001", "CCCC", "", 0, 0 )

Set e3 = Nothing
Set dev = Nothing


Dann muss man das Bauteil platzieren.
Anschließend starte ich folgendes Skript um den Namen anzupassen:

Code:
Set e3 = CreateObject("CT.Application")
Dim prj, items
Set prj = e3.CreateJobObject

cnt =  prj.GetLastAddedItems(items,30): DoChanges items,cnt

sub DoChanges(items,cnt)

    dim sym, sht, dev, i, x, y, grid, shtnam

    Set sym = prj.CreateSymbolObject
    Set sht = prj.CreateSheetObject
    Set dev = prj.CreateDeviceObject
    if (cnt>0)then
'For i = 1 To ubound(items)
sym.SetId items(1)
dev.SetId sym.GetId
dev.setName("B6")
'Next
end if

End sub

Set e3 = Nothing
Set prj = Nothing


Leider geht das nicht in einem Rutsch, weil er bei Laden des Komponente parallel den Code weiter ausführt und ich quasi noch gar nichts gesetzt habe, bevor ich die GetLastAddedItems ausführe.

Oder gibt es eine Möglichkeit das in einem "Rutsch" zu machen?

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 16. Aug. 2017 12:57    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 JochenR 10 Unities + Antwort hilfreich

Hallo Jochen,
entschuldige die späte Antwort...
Ok jetzt checke ich, dass Du darüber eine Teilschaltung einliest. Ich dachte immer es handelt sich nur um einen Block.

Puhhh gute Frage wie Du das in einem Skript handelst. Ich würde sagen das ist technisch nicht möglich.
Ich würde aber dazu tendieren
JobInterface::PlacePartInteractivelyEx() zu benutzen.
Hier hast Du allerdings das gleiche Problem mit dem nachträglichen umbenennen.

ich überlege noch ein bisschen vielleicht komme ich noch auf eine Lösung :-)
Gruß Jörg

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