The Nanoscale World

Lithography compiler problem

rated by 0 users
Answered (Verified) This post has 1 verified answer | 2 Replies | 2 Followers

Top 500 Contributor
4 Posts
Points 45
Jumper Collins posted on Tue, Feb 14 2012 5:42 AM

Hi Everyone,

                        We are running a nanoscope 3 controller on software version 7.2. Recently we have been trying to use the lithography programs. Sadly the Nanolithography manual (both version 5.12 and support note 316 revA) does not seem to be using anything like the C++ compiler we have on the machine. I have tried using the 2005 and 2010 compiler programs but these do not work/I don't know how to get them working. Am I right in thinking that if I get hold of the Microsoft visual C++ 6.0 compiler I will be able to follow the manual exactly? If not is there a manual/technical note on how to work with the more up to date compilers? 

One of our PhD's is threatening to begin shaking up the physical section in search of programmers. 

Any and all help is greatly appreciated.

Thanks,

Andy

  • | Post Points: 10

Answered (Verified) Verified Answer

Top 500 Contributor
4 Posts
Points 45

UPDATE: We managed to work around this by fiddling about in the Microsoft visual C++ 2010 express package. Here is how we made a program to run a square: 

1. We opened up the solution explorer window and made sure all the header files were dragged into the project (Litho.h, Gui.h, sysdefs.h) and also included the StdAfx.h package (see the code below) which I believe it needs in there to make it all work. You can drag those files from the include directory and put them straight into the solution explorer. They will automatically go into the right folders (in this case the "Header Files" folder.

2. In the solution explorer window right click on the solution name and go to "properties" in the scroll down menu. A window will pop up and on the left hand side will be a list of "configuration" properties.

3. click on the little plus box next to "Linker" and go to the "input" choice. When you click on "input" you will see "additional dependencies" in the right hand box. Delete everything in this box. Click OK.

4. Now you can start writing the code: At the end of this I have put the C++ code we used to make a square (It's based on the diamond program in the manual).

5. Compile the program - hopefully there will be no errors (I grabbed an extra header file off the internet that was listed as missing in the debug window on one occasion when a program did go wrong - you might try that too).

6. An error message might pop up but this is OK as the debugger will be trying to run a .exe and not a dll. The dll will have been created and should be located in the automatically generated debug directory - you might have to fish around for it.

7. Find the .dll and now this is ready to drag into the nanoscope software as it says in the manual. You should now be able to run the script - Hope this helps!

 

// Square.cpp

// Example #1 - Writing a Lithography Program

#include <GUI.h>

#include <LITHO.h>

#include <SYSDEFS.h>

#include <StdAfx.h>

 

extern "C" __declspec(dllexport) int macroMain()

{

LITHO_BEGIN

 

LithoDisplayStatusBox(); // display litho status box

 

LithoScan(false); // turn off scanning

LithoCenterXY(); // move tip to center of field

 

double size = 5; // 5 um from center of diamond to point

double rate = 20; // move the tip in X-Y at 20 um/s

 

double depth = -0.050; // push the tip in 50 nm to draw lines

double z_rate = 0.040; // move the tip down at 40 nm/s

 

// move to first corner of diamond

LithoTranslate( 2, -2, rate);

 

// push tip into surface

LithoMoveZ(depth, z_rate); // moving in Z turns off feedback

 

// scribe four sides of the square

LithoTranslate(-5, 0, rate);

LithoTranslate(0, -5, rate);

LithoTranslate( 5, 0, rate);

LithoTranslate( 0, 5, rate);

 

LITHO_END 

 

return 0; // 0 makes the macro unload. Return 1 to keep the macro loaded.

}

  • | Post Points: 13

All Replies

Top 500 Contributor
4 Posts
Points 45

UPDATE: We managed to work around this by fiddling about in the Microsoft visual C++ 2010 express package. Here is how we made a program to run a square: 

1. We opened up the solution explorer window and made sure all the header files were dragged into the project (Litho.h, Gui.h, sysdefs.h) and also included the StdAfx.h package (see the code below) which I believe it needs in there to make it all work. You can drag those files from the include directory and put them straight into the solution explorer. They will automatically go into the right folders (in this case the "Header Files" folder.

2. In the solution explorer window right click on the solution name and go to "properties" in the scroll down menu. A window will pop up and on the left hand side will be a list of "configuration" properties.

3. click on the little plus box next to "Linker" and go to the "input" choice. When you click on "input" you will see "additional dependencies" in the right hand box. Delete everything in this box. Click OK.

4. Now you can start writing the code: At the end of this I have put the C++ code we used to make a square (It's based on the diamond program in the manual).

5. Compile the program - hopefully there will be no errors (I grabbed an extra header file off the internet that was listed as missing in the debug window on one occasion when a program did go wrong - you might try that too).

6. An error message might pop up but this is OK as the debugger will be trying to run a .exe and not a dll. The dll will have been created and should be located in the automatically generated debug directory - you might have to fish around for it.

7. Find the .dll and now this is ready to drag into the nanoscope software as it says in the manual. You should now be able to run the script - Hope this helps!

 

// Square.cpp

// Example #1 - Writing a Lithography Program

#include <GUI.h>

#include <LITHO.h>

#include <SYSDEFS.h>

#include <StdAfx.h>

 

extern "C" __declspec(dllexport) int macroMain()

{

LITHO_BEGIN

 

LithoDisplayStatusBox(); // display litho status box

 

LithoScan(false); // turn off scanning

LithoCenterXY(); // move tip to center of field

 

double size = 5; // 5 um from center of diamond to point

double rate = 20; // move the tip in X-Y at 20 um/s

 

double depth = -0.050; // push the tip in 50 nm to draw lines

double z_rate = 0.040; // move the tip down at 40 nm/s

 

// move to first corner of diamond

LithoTranslate( 2, -2, rate);

 

// push tip into surface

LithoMoveZ(depth, z_rate); // moving in Z turns off feedback

 

// scribe four sides of the square

LithoTranslate(-5, 0, rate);

LithoTranslate(0, -5, rate);

LithoTranslate( 5, 0, rate);

LithoTranslate( 0, 5, rate);

 

LITHO_END 

 

return 0; // 0 makes the macro unload. Return 1 to keep the macro loaded.

}

  • | Post Points: 13
Not Ranked
1 Posts
Points 10
amith replied on Thu, Jul 18 2013 8:47 AM

Hi

I have tried both version 6.0 and 2010 express. But I cant find the litho.h, gui.h etc under the include folder. Any help will be appreciated

Thanks

Amith

  • | Post Points: 10
Page 1 of 1 (3 items) | RSS
Copyright (c) 2011 Bruker Instruments