Newsgroup: it.comp.software.cad
Titolo: Programmazione in autocad multilinguaggio.

Ciao a tutti,
chi sa qualcosa di programmazione in autocad non in autolisp?
cose tipo: ADS,  ARX,  C++.
o meglio chi sa come far interagire Autolisp col C++?
Avrei urgente bisogno di una consulenza riguardante la condivisione di
memoria
tra procedure in autolisp (che ho) e procedure in C++ (che ho) ovvero come
posso
passare variabili da un mondo all'altro senza appoggiare le suddette in un
file?
posso fare in qualche modo con autolisp allocazioni di memoria?
mi spiegherei meglio a voce...
 ...se qualcuno e' in grado di aiutarmi in veste di consulente retribuito
si faccia vivo, se vuole in privato, per accordi.
Quanto a me non so nulla di C++ ma abbastanza di Autolisp.
Ciao ciao,
scusate vado di fretta.
Giovanni Anzani

 wrote in message
news:9no4mj$lpg$1...@lacerta.tiscalinet.it...


 acquisire il valore di una variabile, e di restituire al lisp ogni tipo di
dato in forma LISP.
mo' cerco un po... ...per la cronaca ho trovato questi due gruppi di
funzioni, se non ho capito male servono per i passaggi nelle due
direzioni:
----------------------------------
AutoLISP Symbols
----------------------------------
The functions:
- acedGetSym()
- acedPutSym()
 let ObjectARX applications inspect and change the value of AutoLISP
variables.
----------------------------------
Returning Values to AutoLISP Functions
----------------------------------
ObjectARX provides a set of functions that enables an external function to
return values to AutoLISP. These value-return functions have no AutoLISP
counterparts:
- acedRetInt - An integer value
- acedRetReal - A real value
 - acedRetPoint - A 3D point
- acedRetStr - A string
- acedRetVal - A value passed "generically" in a result buffer
- acedRetName - An entity (RTENAME) or selection set (RTPICKS) name
- acedRetT - The AutoLISP value t (true)
  - acedRetNil - The AutoLISP value nil
- acedRetVoid - A blank value: AutoCAD doesn't display the result
- acedRetList - A list of result buffers returned to AutoLISP
----------------------------------
Mi aiuteresti a capirci qualcosa di piu'? please?
In pratica ho un programma in C++ (compreso il sorgente)
e un po' di idee di cosa fare poi con Autolisp... ...ma a parte questo.
1) lo devo lanciare con autolisp (e questo credo sia facile)
2) devo far arrivare ad autolisp in tempo reale dei valori calcolati
    dal programma esterno ma non appoggiandoli in un file (perche'
    mi servono circa 20 dati al secondo) ma in memoria.
A quanto ho capito, grazie ai tuoi suggerimenti, e' possibile ripassare
in qualche modo ad autolisp quei valori... ...si ma come; ok ho trovato
qeste funzioni ma cosa ci faccio, le metto in qualche modo nel sorgente
del programma dopo avergli spiegato in qualche modo di "includere"
una qualche libreria che le contiene?
Ti prego sii indulgente con questo mio farneticante brancolare nel buio.
Saresti in grado di buttar giu' qualcosa di inerente la parte in ARX
(o quello che e') che possa servirmi da traccia?... ...e mi aiuti a
sostituire quei brutti "in qualche modo" con degli "esattamente
cosi'"?
Con profonda gratitudine
Giovanni Anzani



com'e' difficile essere 
autodidatta e 
senza sapere l'inglese... 
!!


Se non sai 
l'inglese, mi dispiace dirtelo ma l'unica cosa saggià è studiarselo bene, 
altrimenti rinuncia.


Tutti i manuali sull' ObjectARX sono 
solo in inglese per quel che ne so.


Quindi o sai l'inglese o 
rinunci.


 


Un periodo ho usato un po il C e 
l'ADS (ai tempi dell'acad 12) [] Hai smesso?
Si. 


 


Hai mica da mandarmi un po' di codice 
da studiare di qualsiasi tipo per cercare di capirci qualcosa?


Il codice che potrei mandarti risale 
ai tempi dell acad 12 e servirebbe a nulla.


 


 


Ti posso mandare un po di codice in 
Autolisp se lo vuoi, . . .


Ho scritto centinaia di migliaia di 
linee di codice,


ed ho una libreria di 1500 funzioni 
scritte da me . . .


 


 


ti riferisci al file arxdev.pdf che 
un anima pia tempo fa mi passo'?


Si ma non solo a questo 
file.


Dal sito AutoDesk ti puoi 
scaricare quello che vuoi. 
C'è 
tutto.


 


 


 


A quanto ho capito, grazie ai tuoi 
suggerimenti, e' possibile ripassare
in qualche modo ad autolisp quei 
valori... ...si ma come; ok ho trovato
qeste funzioni ma cosa ci faccio, le 
metto in qualche modo nel sorgente
del programma dopo avergli spiegato in 
qualche modo di "includere"
una qualche libreria che le contiene 
?


 


Da quello che dici, capisco che non 
hai idea di come fare.


Io ho una idea meno pallida della 
tua.


Ma comunque non ne sono in 
grado.


Quello che possio dirti è 
che


se il C deve restituire dei valori al 
lisp


deve usare le 


acedRetXXXX 



funzioni.


Se invece deve ricevere dei valori 
dalla funzione Lisp che chiama la funzione C,


esiste la funzione 
acedG
etArgs 
che consente al C di 
acquisire un numero indefinito di argomenti


(il primo argomento è contenuto in 
una struttura contenente un puntatore che punta ad una struttura contenente 



un puntatore che punta . . . 
.)


E questo il modo standard di 
comunicazione C-LISP.


Il C acquisisce tramite 
acedG
etArgs  e restituisce tramite 
acedRetXXXX .


Mentre  
acedPutSym 
e 
acedGetSym servon al 
C per acquisire ed assegnare valori a variabili 
Lisp.


 


Ciao


Domenico



 Quello che posso dirti è che [...]
Provero' a capirci qualcosa, grazie mille.
Peccato tu non sia in grado di farlo...
...neanche a pagamento?
A prescindere da quanto sopra, mi farebbe piacere fare
una chiacchierata a voce con te che credo resti il modo
migliore per intendersi; vorrei riuscire a sapere di piu'
della tua professionalità di cui parli nella tua presentazione
al NG.
Ciao
Giovanni A.