29.07.2024

C3D Labs Tech Support Tips and Tricks

Maxim Kulagin, Head of Tech Support at C3D Labs, shares the secrets of high-performance tech support and explains how to make good requests.

In IT terms, the tech support department functions as a frontend team that receives user requests, processes them and escalates the information to the developers, who are often referred to as the backend team. The developers review the requests, take necessary actions, and deliver updated software as needed.

Let us examine the path of a user’s request.

The user encounters a problem they cannot resolve on their own. They send a request to the tech support. The request is accepted. The tech support team attempts to replicate the issue, assesses it, and identifies the specific software module affected. A request can be a question, problem, bug report, or simply a case where guidance from the developer is needed. Often, a request lacks the necessary information, prompting us to ask for additional details. Sometimes, it is impossible to reproduce or understand the problem without additional information. The support team requests more information, and the user provides it. This exchange may continue for an extended period until all necessary data has been gathered.

So the information is obtained, and the problem is reproducible. What is next?

The software modules from C3D Labs are developed by different teams. Information about a problem is forwarded to the department responsible for developing the affected module. The request results in a task for the developer, which could involve bug fixes, implementing new functionality, or making enhancements. The problem is prioritized based on criticality, importance to users, complexity, and sometimes feasibility of its resolution before being added to the software development roadmap. The most urgent problems (such as application crashes) are addressed immediately, while others are handled according to the roadmap schedule.

Once the task is completed, it is closed, and the information is relayed to the tech support department, which then notifies the user. After receiving feedback from the user, the request is closed.

C3D Labs Tech Support Tips and Tricks, photo 1

Now we will talk about the technical aspect of user request handling. We use the ServiceDesk system.

ServiceDesk is available at sd.ascon.ru. You can access it from any device that can run a web browser. You need to sign up for the system. It is easy: just navigate to sd.ascon.ru.

C3D Labs Tech Support Tips and Tricks, photo 2

Once you are logged in, you can create requests. Any registered ServiceDesk user can submit requests regarding the free software (e.g., C3D Viewer), which can be downloaded from www.c3dlabs.ru. Simply choose “Free Software” or “Trial Versions”. C3D Labs paid tech support users benefit from the special C3D service.

Here is a step-by-step guide for creating a request in ServiceDesk.

To create a new request, select the “New Request” menu item.

C3D Labs Tech Support Tips and Tricks, photo 3

Select the C3D service, then the product. The default value for this service is C3D Kernel.

Now specify the version. At the moment the current version is 2023. It will be incremented in the future.

Next, select the component to which you believe your question, bug report, or request relates. It is not always easy to identify the right component. For instance, the root cause of a rendering problem could be related to a file import issue. We recommend selecting the most appropriate module based on your opinion. If it turns out to be incorrect, a tech support expert will adjust it accordingly.

Next, select the type of your request. It is very simple. Please do not overuse the “showstopper error” type. Choose it only if further work is impossible (for example, the application crashes).

Now you should specify the version of the component you are using. Type in the version in the “Additional product information” field. If the version is not specified, it is possible that the issue you are reporting occurred in an older version and may have already been resolved in the latest release. Without knowing the exact version where the problem occurs, the tech support expert will attempt to replicate it using the latest version. If replication fails, they face a dilemma: is the issue not reproducible due to differences in the environment, system configuration, or other factors, or has it possibly been resolved in a subsequent release? In any case, requesting additional information takes time. Please specify the version for faster processing of your request.

Another key point is your operating system. Please specify the operating system you are using.

Next comes the request priority. All requests are equally important to the users. However, if you label every request as critical, they all end up with the same priority level. Accurate prioritization is essential to promptly address critical issues that truly matter, such as showstoppers. In this manner, the tech support team processes requests in a logical sequence based on their actual criticality.

Now specify the subject of your request. Please provide concise details so our team can quickly categorize your request.

Then provide a detailed description of your request. The more details you provide, the better.

Another important aspect is the files you may attach to the request. The files are utilized by the tech support team to reproduce the issue, comprehend the problem, provide guidance, or escalate the issue to the developers. It is very difficult to reproduce a problem from its text description. Suppose, the user says: “I call a certain function, and the application crashes. What will happen at the tech support? To replicate the situation, a tech support team member recreates the described function. Commonly, the application does not crash under these conditions. The reason for this could be, for example, a slight difference in a function parameter. The combined source code and its description provide more information than either individually. Source code and model files are invaluable for swiftly reproducing and resolving the issue.

So what source code files do you need to attach to the request? There are some options.

  1. Attach an out-of-context fragment of the source code where the error occurs. Generally, it is viable. Its main drawback is that reproducing the issue requires the tech support expert to integrate the code into their environment. This process takes time and may yield results different from what the user is experiencing.
  2. Use one of the test applications supplied with the C3D modules to recreate the problem and upload the modified test application files. In this scenario, reproducing the issue will be much faster since we only need to add your files to the example application and run it. Additionally, the test application code already includes typical debugging commands, such as loading files or adding geometry to the visualization window.

Let us take a look at the test application that comes with the C3D Modeler kernel. The application has a menu to load and save geometry and run the kernel functions. The test_user.cpp files contain function templates (Help → Create new commands → User command menu).

C3D Labs Tech Support Tips and Tricks, photo 4

We can add an algorithm to the templates to reproduce the issue reported by the customer.

Use the following code in the test application to get the model object that contains the geometry loaded from a file:

MbModel & model = TestVariables::viewManager->GetActiveWindow()->SetGeomModel();

The following code deletes/adds a 3D object to/from the model and updates the window:

TestVariables::viewManager→DeleteObject( initialSolid );
TestVariables::viewManager->AddObject( TestVariables::SOLID_Style, resultSolid );

Quite often, users encounter unsatisfactory results with tasks like Boolean operations.

We can compare numerical outcomes, while an image offers an immediate understanding of the situation, and the MathTest test application swiftly visualizes the result. The application also has examples of using most of the kernel functions.

Suppose a request concerns the C3D Vision module. This module comes with a large number of examples (currently 40+). Each example illustrates specific functionality and demonstrates how to use it. These examples are also suitable for reproducing the user’s issue. This is the best option: send a modified source code of the example application to the tech support team so they can reproduce the issue. The same goes for NetC3DToolkit, a С# wrapper for Vision.

To reproduce issues with C3D Solver, you may attach a log generated by the following function:

  • For the 2D version of C3D Solver:
    bool GCE_SetJournal( GCE_system gSys, const char * fName );
  • For the 3D version of C3D Solver:
    bool GCM_SetJournal( GCM_system gSys, const char * fName );

The log records all data sent to the C3D Solver so that the issue can be reproduced.

Lastly, I’d like to provide some general recommendations on submitting requests to tech support. Whenever feasible, the request should be highly detailed. Describe the issue, actions taken, etc. It’s beneficial to attach the source code where the problem occurs, as a few lines of code can often replace a thousand words. If the issue involves a geometric model loaded from an external format, it is advisable to attach the original file to track down any import problems that may have affected downstream operations.

If there are multiple issues, avoid combining them into a single request, as each may need to be addressed by different experts. Combining the issues can complicate problem-solving efforts.

The easier it is to understand and reproduce the problem, the faster your request will be forwarded to the right expert.

Maxim Kulagin, Head of Tech Support,C3D Labs
Maxim Kulagin,
Head of Tech Support,
C3D Labs
Share
Up