Simulador

Delphi

26/09/2003

Olá pessoal!

Estou desenvolvendo um programa de simulação elétrica/eletrônica, similar ao Electronics Workbench (ou EWB).
Já possuo uma biblioteca de componentes elétricos. Preciso definir como será a ´cara´ do programa, ferramentas disponíveis, etc, mas isso ainda não é problema (aceito sugestões...).

Minhas dificuldades são:

1- Qual o tipo de controle que posso utilizar como ´base´ para a montagem do circuito? Ou seja, que tipo de (ou qual) controle posso utilizar para fazer o papel de ´bancada´ ou ´área de trabalho´, para onde são arrastados os componentes elétricos contidos na(s) barra(s) de ferramentas?

2- Como gerar as linhas que servem para interligar os componentes, as quais representam os fios elétricos de um circuito real?

3- Como fazer para que o programa entenda que os componentes dispostos na ´bancada´ estão interligados?

Desde já agradeço a toda a ajuda que puderem dar, pois a coisa “ta braba”.

Até mais.
wbb


Wbb

Wbb

Curtidas 0

Respostas

Rfpsatin

Rfpsatin

26/09/2003

´Estou desenvolvendo um programa de simulação elétrica/eletrônica, similar ao Electronics Workbench (ou EWB). ´

Legal, tenho um amigo q usa ele

´Já possuo uma biblioteca de componentes elétricos. Preciso definir como será a ´cara´ do programa, ferramentas disponíveis, etc, mas isso ainda não é problema (aceito sugestões...). ´

Como vc mesmo disse, isto é fácil

´Minhas dificuldades são: ´

´1- Qual o tipo de controle que posso utilizar como ´base´ para a montagem do circuito? Ou seja, que tipo de (ou qual) controle posso utilizar para fazer o papel de ´bancada´ ou ´área de trabalho´, para onde são arrastados os componentes elétricos contidos na(s) barra(s) de ferramentas? ´

Isto é simples, vc pode usar uma aplicação MDI e arrastar os componentes p/ os Child´s. Cada form tera components

´2- Como gerar as linhas que servem para interligar os componentes, as quais representam os fios elétricos de um circuito real? ´

Vc pode pintar na mão e repintar tudo qdo precisar ou usar componentes próprios p/ isso, deê uma olhada na LDM tools. Se não me engano ela tem componentes p/ fazer diagramas, talvez possa te ajudar. ps. não é free.

´3- Como fazer para que o programa entenda que os componentes dispostos na ´bancada´ estão interligados? ´

Começa teu problema. Fazer tudo isto até aqui é tecnicamente simples, contudo fazer isto tudo ter sentido é q q coisa começa a complicar. Vc
é estudante universitário ou já foi? desenvolveu alguma forma de compilador? pois bem, fazer a coisa funcionar seria isto, vc teria q:

1o. desenvolver um compilador q possa transformar isto tudo em algo útil.
2o. especificar o q cada componente faz:

imagine assim:

qdo o delphi lee a palavra ´procedure´ ele identifica ela numa tabela de simbolos reservados e ´entende´ ao longo do processo de compilação o q esperar dela. +- seria isto q vc teria q fazer. Ao ter uma ´linha´ teu compilador teria q analisar q q esperar dela.

Não quero te desanimar + a coisa é trabalhosa.

Ricardo

Desde já agradeço a toda a ajuda que puderem dar, pois a coisa “ta braba”.

Até mais.
wbb


GOSTEI 0
Wbb

Wbb

26/09/2003

Obrigado Ricardo.

Concordo com você quando diz que a coisa será trabalhosa mesmo. Mas, infelizmente não tenho opção.
Você me perguntou se sou estudante. Sim, sou, e este programa é só parte de um projeto maior, que só poderá ser concluido com a definição deste programa.
A idéia de criar um ´compilador´ conforme você indicou, é a mesma com a qual estou trabalhado, de forma que cada componente que for sendo inserido criará automaticamente (em Run Time) uma rotina padrão em um arquivo que representará o circuito a ser simulado (ainda não defini a formatação disso).

Se não for abusar da boa vontade, você poderia dar mais detalhes sobre as questões 1 e 2? Pelo que posso perceber, você já ´bateu cabeça´ com algo parecido também...

Obrigado novamente.
wbb


GOSTEI 0
Rfpsatin

Rfpsatin

26/09/2003

´1o. desenvolver um compilador q possa transformar isto tudo em algo útil. ´
Já desenvolvi um compilador usando object pascal p/ a linguagem PL/0 e foi até q bem trabalhoso. C vc quiser saber + detalhes sobre a construção de um compilador dêe uma olhada no livro conhecido como ´O livro do dragão´. Tem um dragão vermelho na capa e é muito bom. Foi com base nele q desenvolvi o meu. Vc disse q eh estudante, provavelmente se deparará com esta matéria rs...


´2o. especificar o q cada componente faz:´
Olha, isso é bem complexo, é necessario a utilização de automatos deterministicos para uma correta programação, lógico q vc pode pular isto + perde bastante. O q quero dizer é o seguinte.

qdo o Delphi lêe a palavra procedure ele vai na tabela de simbolos dele e identifica ela como palavra reservada. Com base nisto ele vai analise o que pode ter a palavra reservada. Tipo

procedure + declaração + bloco de código.

Lógico q isto é apenas um exemplo, não caiam matando em cima de mim por não estar usando EBNF.

Teu programa teria q ser algo assim. Uma linha é composta por isto e aquilo, aquilo é composto por aquilo e aquilo outro. Como vc deve estar percebendo, tudo converge p/ uma estrutura de arvore binária.

Qdo digo q fazer um compilador p/ isto é complicado é pq realmente é complicado. Não difere muito de um compilador normal pq ao invez de palavras reservadas vc vai ter imagens reservadas.

Bem. qq coisa...

Ricardo


GOSTEI 0
Wbb

Wbb

26/09/2003

Entendi...

Mas como eu disse, não tenho escapatória. Tenho que gerar o programa desta forma ou outra qualquer. À princípio, o importante é funcionar.
Vou procurar este livro que você indicou. Se por acaso aparecer algo mais que possa me ajudar, ficaria muito grato.

Obrigado e até mais.
wbb

OBS.: Assim que eu conseguir fazer o programa, irei disponibilizar para o pessoal aqui do fórum.


GOSTEI 0
Rfpsatin

Rfpsatin

26/09/2003

Vc vai estar trabalhando sozinho ou alguem da tua universidade vai ta tb(algum professor) trabalhando no projeto?

Da uma olhada na LMD ou LDM tools q lá tem algumas coisa boas


GOSTEI 0
Wbb

Wbb

26/09/2003

hehehe... Só rindo mesmo. Eu tô FERRADO Ricardo! Estou sozinho mesmo. Na faculdade tem o meu professor orientador, mas sabe como são as coisas né... Orientar que é bom, nada. E nem é pouco caso por parte do professor não. Realmente é difícil para ele dar atenção a todos os orientados, cada um com a idéia de ´o meu problema é pior´. Fazer o que né!

Quanto ao uso do LDM tools, está previamente proibido que façamos uso de toda e qualquer ferramenta que não seja free, exceto a própria linguagem (o Delphi), claro. O que dificulta tudo ainda mais.

Sei lá o que vou fazer. Vou começar pelo livro que você indicou.

Até mais.
wbb


GOSTEI 0
Wbb

Wbb

26/09/2003

Pessoal, dêem uma dica de literatura ao menos...

Grato.
wbb


GOSTEI 0
POSTAR