| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: CAE-Basic (1213 mal gelesen)
|
Sbinder Mitglied

 Beiträge: 10 Registriert: 16.12.2008
|
erstellt am: 16. Dez. 2008 15:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo liebe Leute! ich bin noch recht unbedarft was CAEBasic angeht, möchte aber trotzdem ein aql schreiben, mit dem man die Anschlussstellen der Klemmen in eine andere Ebene schieben kann. Für ein Blatt Stromlaufplan klappt das schon einwandfrei, aber wie kann ich das jetzt so aufbohren, dass das aql automatisch alle Dokumente durchmacht? Kann da jemand helfen? Grüße! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SvenT Mitglied Ing. ET

 Beiträge: 34 Registriert: 18.12.2003 Sigraph ET V2016R2 EPlan 2024 Update 2
|
erstellt am: 17. Dez. 2008 08:43 <-- editieren / zitieren --> Unities abgeben:          Nur für Sbinder
Hallo, mit den unteren Zeilen/AQL werden alle Seiten eines Arbeitsbereiches geöffnet und könneb durch ein AQL, dass noch eingebunden werden muß, bearbeitet werden: VG Sven TRANSACTION_BEGIN //////////////////////////////////////////////////////////////////////////////// // Selektiertes Projekt / Arbeitsbereich ermitteln //////////////////////////////////////////////////////////////////////////////// instance = get_db_obj_of_sel_obj() if valid(instance) then pfad = BS_Instance_get_path(instance) class = BS_Instance_get_class(instance) classname = BS_Class_get_class_name(class) if classname = "Model_documentation" then oql = "SELECT $.PDM_Abs_et_node*.DM_Circuit_diagram.DM_document_number FROM COLLECTION;" docs={} if valid(instance) and valid(oql) then start_coll = SEL_Start_collection_create() SEL_Start_collection_add(start_coll, instance) c = BS_Instance_get_class (instance) cname = BS_Class_get_class_name (c) result = SEL_Result_select(oql, start_coll, cname) if valid (result) then anzahl = SEL_Result_get_number_of_lines(result) if anzahl>0 then z = 0 while z < anzahl do inst = SEL_Result_get_bs_element (result, z, 0) if valid(inst) then docs= docs + inst end z=z+1 end end end SEL_Result_delete(result) SEL_Start_collection_delete(start_coll) end for doc in docs do vp_id = DM_open(doc) //aql(......) //hier muß der Aufruf des AQLs zum Bearbeiten der Seite hin vp_activate (vp_id) vp_close () end else simple_yes_no_dialog("Selektionsfehler", "Falsche Selektion!\nBitte selektieren Sie einen Arbeitsbereich!","OK","") end // classname = "Model_documentation" end // valid (instance) TRANSACTION_END Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sbinder Mitglied

 Beiträge: 10 Registriert: 16.12.2008
|
erstellt am: 17. Dez. 2008 09:04 <-- editieren / zitieren --> Unities abgeben:         
ah sehr gut, danke Sven! funktioniert einwandfrei! Jetzt hab ich noch ein Problem. Wenn jetzt nämlich auf einer Seite nichts vom filter selektiert wird, erhalte ich einen Fehler. D.h. ich brauche noch eine Abfrage, ob durch das setzen des Filters die Anzahl der Selektionen >0 ist... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SvenT Mitglied Ing. ET

 Beiträge: 34 Registriert: 18.12.2003 Sigraph ET V2016R2 EPlan 2024 Update 2
|
erstellt am: 17. Dez. 2008 13:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Sbinder
Hallo, nach dem Anwenden des Filters kann man sich alle selektierten Objekte in eine Gruppe holen und anschliessend die Länge/Größe der Gruppe bestimmen: apply_filter(); gruppe = get_all_selected_objs(); anzahl = len (gruppe); Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sbinder Mitglied

 Beiträge: 10 Registriert: 16.12.2008
|
erstellt am: 17. Dez. 2008 14:04 <-- editieren / zitieren --> Unities abgeben:         
|