• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

Nome del frame

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#1
Salve a tutti...

Mi sto dilettando a programmare in lisp ed ho una domanda a cui per il momento non sono riuscito a trovare risposta...

Carico automatica i miei cartigli con questa linea di comando.

(docu-register-frame :ui-name "A0" :wm-name "" :file "<unita>:/<percorso>/A0.mi" )

Fino a qui tutto ok.

Ora vorrei una funzione che mi restituisca il nome del frame attualmente caricato.
Cioè ad esempio per la linea sopra inserita vorrei che mi ritornasse il :ui-name "A0".

Ho provato con le funzioni sd-am-frame-p ecc... e tutte quelle del genere ma non mi ritorna la stringa che vorrei...

Grazie come sempre per la collaborazione.

Michele
 

Andy-manager

Utente Standard
Professione: cad manager
Software: CoCreate
Regione: veneto
#2
ma per compilare il cartiglio?

Salve a tutti...

Mi sto dilettando a programmare in lisp ed ho una domanda a cui per il momento non sono riuscito a trovare risposta...

Carico automatica i miei cartigli con questa linea di comando.

(docu-register-frame :ui-name "A0" :wm-name "" :file "<unita>:/<percorso>/A0.mi" )

Fino a qui tutto ok.

Ora vorrei una funzione che mi restituisca il nome del frame attualmente caricato.
Cioè ad esempio per la linea sopra inserita vorrei che mi ritornasse il :ui-name "A0".

Ho provato con le funzioni sd-am-frame-p ecc... e tutte quelle del genere ma non mi ritorna la stringa che vorrei...

Grazie come sempre per la collaborazione.

Michele
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#3
Si riesco a compilare il cartiglio in automatico con le indicazioni che mi avevi già dato a suo tempo...

ora voglio aggiungere anche la possibilità di mettere revisione aggiungendo linee al cartiglio stesso in funzione del numero di revisione...

solo che le dimensioni dei miei cartigli variano se sono A3, A2 ecc...

Quindi volevo sapere se ci fosse una funzione che mi ritorna il nome del cartiglio.

Per adesso faccio con la funzione sd-am-sheet-struct-corners che mi ritorna le coordinate dei due punti del cartiglio e quinidi riesco a capire che dimensioni ha.

Grazie per la collaborazione.

Michele
 

Andy-manager

Utente Standard
Professione: cad manager
Software: CoCreate
Regione: veneto
#4
potresti ricavarlo dal nome del cartiglio. Se lo editi da osd_drafting (me10) puoi associare alla parte top il nome del cartiglio. Di quello dovresti riuscire a farti restituire il nome.
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#5
Ho provato come mi hai detto tu ed alla fine ci sono riuscito anche facendo delle macro in ME10 Drafting...

La macro ME10 scopiazzanto qua e là e sicuramente da ottimizzare è la seguente:

(sd-execute-annotator-command :cmd (format nil ;; nome del frame
"~a ~a ~a ~a ~a ~a ~a ~a ~a ~a ~a ~a"
"DEFINE Am_inq_name_of_frame"
"PARAMETER target_pid"
"LOCAL name"
"LOCAL output"
"INQ_PART target_pid"
"LET name (INQ 301)"
"LET output (FORMAT_MESSAGE '{1}' (STR name))"
"LET output (DOCU_CSTRING_TO_LSTRING output)"
"(DOCU_OPEN_CONNECTION_TO_SD)"
"(DOCU_ADD_LINE_TO_SD output)"
"(DOCU_CLOSE_CONNECTION_TO_SD)"
"END_DEFINE"
)
)

e per richiamarla ho usato questo codice:


(setq foglio (sd-am-inq-curr-sheet))
(setf list_object (sd-am-inq-sheet foglio))
(setf dim_frame (sd-execute-annotator-function :fnc (format nil "Am_inq_name_of_frame \'~A\'" (sd-am-sheet-struct-frame list_object))))

Questa mi ritorna il nome che ho dato in ME10 al frame.

Saluti
Michele