Simulador
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
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
Curtidas 0
Respostas
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
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
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
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
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
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
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.
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
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
Da uma olhada na LMD ou LDM tools q lá tem algumas coisa boas
GOSTEI 0
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
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
26/09/2003
Pessoal, dêem uma dica de literatura ao menos...
Grato.
wbb
Grato.
wbb
GOSTEI 0