0

I am working on software to develop control and data acquisition systems (SCADA) called WinCC OA. this latter does not give the possibility to import 3d objects and animated objects, but it does give the possibility to create API.

For my case it is an EWO (External Widget Object), you will find attached the header template I generated, it is developed in C++ using the Qt platform.

#ifndef __TEMPLATE__H_
#define __TEMPLATE__H_

#include <BaseExternWidget.hxx>
#include <QPen>
#include <QBrush>

//--------------------------------------------------------------------------------
// this is the real widget (an ordinary Qt widget), which can also use 
Q_PROPERTY

class MyWidget : public QWidget
{
Q_OBJECT

// TODO example properties
Q_PROPERTY( QStringList values READ getValues WRITE setValues DESIGNABLE false )
Q_PROPERTY( QPen pen           READ getPen    WRITE setPen    DESIGNABLE false )
Q_PROPERTY( QBrush brush       READ getBrush  WRITE setBrush  DESIGNABLE false )

public:
MyWidget(QWidget *parent);

// TODO example of a string list property
QStringList getValues() const { return values; }
void setValues(const QStringList &list) { values = list; }

// a QPen property used on a line drawn inside this widget
const QPen &getPen() const { return pen; }
void setPen(const QPen &p) { pen = p; update(); }

// a QBrush property used as the background of this widget
QBrush getBrush() const;
void setBrush(const QBrush &brush);

signals:
// TODO example of a 2 signals this widget emits
void clicked1();
void clicked2();

protected:
virtual void paintEvent(QPaintEvent *event);

private:
// TODO example of a string list property
QStringList values;
QPen pen;
};

//--------------------------------------------------------------------------------
// this is the EWO interface class

class EWO_EXPORT _TEMPLATE_ : public BaseExternWidget
{
Q_OBJECT

public:
_TEMPLATE_(QWidget *parent);

virtual QWidget *widget() const;

virtual QStringList signalList() const;

virtual bool methodInterface(const QString &name, QVariant::Type &retVal,
                             QList<QVariant::Type> &args) const;

virtual QStringList methodList() const;

public slots:
virtual QVariant invokeMethod(const QString &name, QList<QVariant> 
&values, QString &error);

private slots:
// TODO the slots you need to redirect to the generic "signal" signal
void clicked1();
void clicked2();

private:
MyWidget *baseWidget;
};

#endif

honestly to develop an interactive 3d simulator purely in Qt respecting the generated template I can't even get started.

here is a video to give an idea about the 3d simulator I want to make https://www.youtube.com/watch?v=yu-M6Omk1ps

I thought about developing the simulator using a 3d engine , I start to develop it using unity (3d metro station visualization where I control camera position from buttons, I can make on/off the elevator ...etc).

I managed to do but my problem is the integration, how to integrate this simulator into WinCC OA, i.e. the presentation I made under unity will be a widget in the new software, and I can control elevator, escalators .. etc from this last software.

Help please

Best Regards

Anes

Markus Safar
  • 6,324
  • 5
  • 28
  • 44
Anes
  • 21
  • 4
  • This kind of questions is usually considered off-topic, as they tend to be extremely broad and opinion-based. There are literally tons of libraries/frameworks/other kinds of software to create your 3d visualization, the best choice for you depends on the requirements we don't know and can't even guess. If you have some practical, answerable questions about concrete frameworks or libraries, you'll probably find a lot of help, but it is virtually impossible to answer your question as it is now. – rs232 Apr 24 '19 at 12:20
  • 1
    Is this a Unity3d or C# question? I'm only seeing C++ and QT concerns in the question – Eliasar Apr 24 '19 at 17:52

0 Answers0