Beginner question: yellow markings

DanB

CAD community veteran
Probably a noobish and silly question, but what are those yellow markings and why are some of the lines coloured red?markings.PNG
 

JSlyadne

Administrator
Staff member
Since there is no model attached, I would suppose that yellow crosses represent the free vertexes of the model, while the red edges, likely, point out the faces not connected with any others.

For more precise analysis you might want to share the 3D model itself.
 

JSlyadne

Administrator
Staff member
Sure, this is a robot arm consisting of 7 links, that I have chosen to load separately. Only the base have these crosses, so that is the one I will share.

Anyways, thank you!

EDIT: step-files are not allowed for posting.

This is the model I have used: https://www.universal-robots.com/download/mechanical-e-series/ur10e/robot-step-file-ur10e-e-series/
Hm-m, following the link I'm asked to be logged in or create an account. So given this let's try to sort out the reason of limitation to files attachment at first. @Quaoar are you aware about this? Can this restriction be somehow resolved?
 

DanB

CAD community veteran
Hm-m, following the link I'm asked to be logged in or create an account. So given this let's try to sort out the reason of limitation to files attachment at first. @Quaoar are you aware about this? Can this restriction be somehow resolved?
Sorry. My bad.
 

DanB

CAD community veteran
Follow up question: trying to load step files in debug mode causes some issues. Trying to do something like this code:

STEPControl_Reader readerBase;
readerBase.ReadFile("./data/base_ur10.stp");
std::cout << readerBase.TransferRoots() << "Base roots transferred" << std::endl;

throws an exception error in TKBase.dll using TransferRoots(). While building and running the release executable gives me no issues at all. What is going on? And what is the purpose of TransferRoots()?

Just to point out, I have read the documentation and it says:
"Transfers a root given its rank in the list of candidate roots Default is the first one Returns True if a shape has resulted, false else Same as inherited TransferOneRoot, kept for compatibility." Roots of what? What Rank?
 
Last edited:

Quaoar

Administrator
Staff member
Can you provide a stack trace? I've tried this in debug for the file you attached and it did not raise any exception for me.
 

DanB

CAD community veteran
Can you provide a stack trace? I've tried this in debug for the file you attached and it did not raise any exception for me.
TKXSBase.dll!00007ff826f3ce50() Unknown
TKSTEP.dll!00007ff827205fd2() Unknown
TKXSBase.dll!00007ff826fd41ba() Unknown
> OcctQtViewer.exe!OcctQtViewer::loadStepFiles() Line 378 C++
OcctQtViewer.exe!OcctQtViewer::initializeGL() Line 351 C++
Qt5Widgetsd.dll!QOpenGLWidgetPrivate::initialize() Line 856 C++
Qt5Widgetsd.dll!QOpenGLWidget::resizeEvent(QResizeEvent * e) Line 1287 C++
Qt5Widgetsd.dll!QWidget::event(QEvent * event) Line 8810 C++
Qt5Widgetsd.dll!QOpenGLWidget::event(QEvent * e) Line 1467 C++
Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3632 C++
Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3582 C++
Qt5Cored.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1063 C++
Qt5Cored.dll!QCoreApplication::sendEvent(QObject * receiver, QEvent * event) Line 1459 C++
Qt5Widgetsd.dll!QWidgetPrivate::sendPendingMoveAndResizeEvents(bool recursive, bool disableUpdates) Line 7712 C++
Qt5Widgetsd.dll!QWidgetPrivate::show_helper() Line 7765 C++
Qt5Widgetsd.dll!QWidgetPrivate::setVisible(bool visible) Line 8113 C++
Qt5Widgetsd.dll!QWidget::setVisible(bool visible) Line 8044 C++
Qt5Widgetsd.dll!QWidget::show() Line 7670 C++
Qt5Widgetsd.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8185 C++
Qt5Widgetsd.dll!QWidgetPrivate::show_helper() Line 7772 C++
Qt5Widgetsd.dll!QWidgetPrivate::setVisible(bool visible) Line 8113 C++
Qt5Widgetsd.dll!QWidget::setVisible(bool visible) Line 8044 C++
Qt5Widgetsd.dll!QWidget::show() Line 7670 C++
OcctQtViewer.exe!main(int theNbArgs, char * * theArgVec) Line 137 C++
OcctQtViewer.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 97 C++
[External Code]
 

Quaoar

Administrator
Staff member
@DanB It's strange that it prints "Unknown" for TKXSBase and stuff. Are you sure these are the debug libs coming from bind directory of OpenCascade? Can you see there the pdb files? When you run your app from Visual Studio, does it print "symbols are loaded" when it comes to OpenCascade libs?
 

DanB

CAD community veteran
@DanB It's strange that it prints "Unknown" for TKXSBase and stuff. Are you sure these are the debug libs coming from bind directory of OpenCascade? Can you see there the pdb files? When you run your app from Visual Studio, does it print "symbols are loaded" when it comes to OpenCascade libs?
You are absolutely right, I loaded the release dlls. Still have a problem with TKBase and TKStep with the correct DLLs. I'll post the stack trace again
> TKXSBase.dll!Interface_InterfaceModel::NbEntities() Line 201 C++
TKSTEP.dll!STEPControl_Reader::NbRootsForTransfer() Line 126 C++
TKXSBase.dll!XSControl_Reader::TransferRoots(const Message_ProgressRange & theProgress) Line 309 C++
OcctQtViewer.exe!OcctQtViewer::loadStepFiles() Line 381 C++
OcctQtViewer.exe!OcctQtViewer::initializeGL() Line 354 C++
Qt5Widgetsd.dll!QOpenGLWidgetPrivate::initialize() Line 856 C++
Qt5Widgetsd.dll!QOpenGLWidget::resizeEvent(QResizeEvent * e) Line 1287 C++
Qt5Widgetsd.dll!QWidget::event(QEvent * event) Line 8810 C++
Qt5Widgetsd.dll!QOpenGLWidget::event(QEvent * e) Line 1467 C++
Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3632 C++
Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3582 C++
Qt5Cored.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1063 C++
Qt5Cored.dll!QCoreApplication::sendEvent(QObject * receiver, QEvent * event) Line 1459 C++
Qt5Widgetsd.dll!QWidgetPrivate::sendPendingMoveAndResizeEvents(bool recursive, bool disableUpdates) Line 7712 C++
Qt5Widgetsd.dll!QWidgetPrivate::show_helper() Line 7765 C++
Qt5Widgetsd.dll!QWidgetPrivate::setVisible(bool visible) Line 8113 C++
Qt5Widgetsd.dll!QWidget::setVisible(bool visible) Line 8044 C++
Qt5Widgetsd.dll!QWidget::show() Line 7670 C++
Qt5Widgetsd.dll!QWidgetPrivate::showChildren(bool spontaneous) Line 8185 C++
Qt5Widgetsd.dll!QWidgetPrivate::show_helper() Line 7772 C++
Qt5Widgetsd.dll!QWidgetPrivate::setVisible(bool visible) Line 8113 C++
Qt5Widgetsd.dll!QWidget::setVisible(bool visible) Line 8044 C++
Qt5Widgetsd.dll!QWidget::show() Line 7670 C++
OcctQtViewer.exe!main(int theNbArgs, char * * theArgVec) Line 137 C++
OcctQtViewer.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 97 C++

Edit: Also, exception is now "
Unhandled exception thrown: read access violation. this was nullptr."
 

Quaoar

Administrator
Staff member
Looking better now. Can you step into the sources and check the code near that NbEntities() invitation? Is that InterfaceModel instance non-null? Btw, which exception does it throw? What type?
 

Quaoar

Administrator
Staff member
Okay, then the model is null... Not sure why though. Any ideas stepping around in the code?
 

DanB

CAD community veteran
Okay, then the model is null... Not sure why though. Any ideas stepping around in the code?
No, I have no idea since the executable is able to load them, and that's why did not check the return code. Will do that now.
 

Quaoar

Administrator
Staff member
I was just thinking that if you're using the relative file path, the file itself might not exist in debug configuration because the working directory of IDE will change.
 
Top