Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - utilizzare la classe Graphitem
Forum - C# / VB.NET - utilizzare la classe Graphitem

Avatar
antiriti (Normal User)
Newbie


Messaggi: 5
Iscritto: 31/07/2016

Segnala al moderatore
Postato alle 19:49
Martedì, 23/08/2016
Sono un ingegnere civile appassionato di Visual basic net. Utilizzando la classe graphitem sto facendo una specie di minicad per disegnare linee e nodi che mi serviranno per fare un successivo schema per il calcolo di travi in c.a o acciaio.
Mi sorge un problema, dovendo lavorare su oggetti eposti da graphitem che espone delle proprietà generali (colore, tratto, ecc...) e non gli oggetti linea creati  come faccio ad individuare l'oggetto  linea nella classe graphitem dall'esterno? Ho pensato di  creare delle collezioni linee all'interno di graphitem  ... Non so se va bene cosi,  in ogni caso sareste cosi gentili da indirizzarmi?
>> Saluti e grazie
>> Antonino Iriti

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 11:14
Mercoledì, 24/08/2016
Per creare un cad, come per un gioco serve un motore "logico" e un "visivo". Il motore visuale elabora ciò che è presente le logico e lo mostra nello schermo.

Il motore logico tiene traccia di tutto ciò che è stato disegnato, delle sue proprietà, della sua posizione, del materiale ecc....

Il motorie visuale di solito si fa con qualcosa di diverso da graphitem..... Solitamente si fa con qualche libreria 3D o 2D.

Una delle più famose librerie 2D per giochi è questa: https://github.com/flibitijibibo/SDL2-CS ma fa anche molto altro, ad esempio: SDL_RenderDrawPoint, SDL_RenderDrawPoints, SDL_RenderDrawLines e molto, molto altro ancora!

PM Quote
Avatar
antiriti (Normal User)
Newbie


Messaggi: 5
Iscritto: 31/07/2016

Segnala al moderatore
Postato alle 11:52
Mercoledì, 24/08/2016
Grazie per la risposta veloce. Sto già guardando....

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 13:26
Mercoledì, 24/08/2016
Potresti linkare la documentazione a graphitem? Non mi intendo molto di net framework.

Se hai bisogno solo di collegare nodi qualcosa di semplice potrebbe andare, quello che TheDarkJuster chiama "motore logico" è tecnicamente chiamato scenegraph, può diventare anche piuttosto complesso (per non parlare del rendering).

Ti servono 3d, zoom, rotazione eccetera?

Seconda cosa, non capisco bene cosa intendi per trovare l'oggetto linea dall'esterno, potresti spiegarti meglio?

PM Quote
Avatar
antiriti (Normal User)
Newbie


Messaggi: 5
Iscritto: 31/07/2016

Segnala al moderatore
Postato alle 9:16
Giovedì, 25/08/2016
Graphitem è la classe che  è descritta da Piero Tofy nel capitolo 96 della guida al Visual Basic.net pubblicata qui nel sito. L'oggetto linea è una classe che eredita da Graphitem. Dopo che disegno le linee ho bisogno di richiamarle dall'esterno della classe stessa, per fare delle operazioni. Però la classe Graphitem ha un metodo draw per disegnarle e i punti inizio e fine della linea stessa  sono proprietà  della classe Linea. Io non posso riferirmi alla linea, per esempio con Graphitem.linea.inizio, perché chiaramente la proprietà inizio si riferisce alla linea e non è una proprietà di grahitem. Io avevo pensato che graphitem deve esporre una collection di Linee, chiedevo dei consigli. E' interessante però la costruzione di un motore come suggeriva TheDarkJuster. Si certamente mi serviranno il pan, zoom, magari anche 3d, ma solo per costruire la mesh per schematizzare gli elementi strutturali.
Tenete presente che non sono un programmatore di professione ... grazie per i suggerimenti!

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 10:28
Giovedì, 25/08/2016
3D? Questo è un problema.... Per poter usare il 3D... occorre una libreria 3D, diciamo ad esempio https://github.com/opentk/opentk o directx8 (antiche) . Non sarà facile: per poter usare il 3D è necessario studiare MOLTO bene la libreria che si vuole usare e tener conto che potrebbero servirti molti shaders!

Il progetto che ti sei scelto è un progetto abbastanza difficile, anche per chi lo fa per professione. Ci vorrà diverso tempo prima di avere un prototipo funzionante e la strutta del progetto deve essere ben pensata, altrimenti non vedrà mai la luce.

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 14:47
Giovedì, 25/08/2016
Ah ok, quindi è una classe custom. Per esattezza la guida è di Totem.
Se tutti i graphitem che mostri sono linee, puoi fare un cast alla sottoclasse (non so se sia così, ma in linea teorica l'oggetto che disegni dovrebbe ereditare da GraphItem), dove puoi aggiungere la proprietà linea che ti serve.

Pan e zoom li puoi ottenere con Graphics, il 3D invece no. Purtroppo la mia conoscenza dell'ingegneria civile è totalmente nulla e non riesco a immaginare le tue esigenze.

Una soluzione potrebbe essere quella di usare un programma separato per fare i modelli (magari blender lo fa? boh) e poi importarli nel tuo programma leggendo il formato esportato, quindi fare i calcoli (e così mancherebbe però l'aspetto interattivo probabilmente).

PM Quote
Avatar
antiriti (Normal User)
Newbie


Messaggi: 5
Iscritto: 31/07/2016

Segnala al moderatore
Postato alle 18:45
Giovedì, 25/08/2016
Si il problema generale è discretizzare le linee che poi diventeranno elementi travi, che sono collegati ai nodi (cioè punti). Questi elementi saranno disegnati da graphitem; successivamente però io devo selezionarli ed impostare caratteristiche fisiche (Modulo di Young, sezione, ecc.). Il motore di calcolo ce l'ho già, fra l'altro scritto in Fortran e tradotto da me in vb6 e vbnet. Per adesos sto lavorando in 2D.... grazie per il vostro contributo!

PM Quote
Avatar
antiriti (Normal User)
Newbie


Messaggi: 5
Iscritto: 31/07/2016

Segnala al moderatore
Postato alle 17:43
Venerdì, 26/08/2016
Ho risolto il problema di estrarre l'oggetto linea dalla classe astratta Graphitem  con  DirectCast . Grazie per il suggerimento Lumo

PM Quote