Wine - Running LT 2000

Running AutoCAD LT 2000 via Wine on Linux

(Note: These instructions reference software that is now possibly much newer with many new or different configuration options. This page is being left up for reference.)


General Commentary

Originally I installed Windows 2000 and then RH9 in a dual boot config. However I was using RH9 about 97% of the time (home system). I wanted to get rid of Windows completely, but knew I would need LT2k occasionally.

I originally tried CrossOver Office as a trial and I was able to get LT installed and running (usability is another matter). However LT is not officially supported by COO and they were using an older version of Wine. I realized I could have upgraded the Wine installation, but I wanted to try it with Wine alone.

Initially I tried Wine setup as a "fake" Windows. When playing with COO, I found that LT would not run in any real usable manner until I installed Internet Explorer. Trying to get IE 6 to install was a pain, but I did get IE5.5 to install to some extent. A bit more playing and downloading of DLL files and I got LT to install and run, but still it wasn't in a usable state.

After needing all of those DLLs I decided to try Wine with what is called a "shadowed" Windows installation. (See The Wine File System and Drive Layer for more information on fake, existing, and shadowed Windows setups.) At this point I am writing this using a shadowed Windows 2000 installation, mostly to avoid having to download all of the needed DLL files after I figure out which ones are needed. I had installed Windows 2000, but have not done any updates or applied any service packs at the time of copying. LT had not been installed under Windows when I copied the "Program Files" directory.

I realize I could have used Windows 98 instead, but my license for that is installed on another machine. Also LT2004, to which I will upgrade to at some point, is not supported on Win98 (though there are reports that it can be run with it). Ok, so LT isn't supported running under Wine either.


My Setup

Wine can be downloaded here.

  • OS: RedHat 9.0
  • Kernel: 2.4.20 (stock RH)
  • XFree86: 4.3.0
  • Wine: 20030618 via RPM
  • CPU: AMD 2500+
  • RAM: 512meg
  • Video: GeForce FX 5200

Wine using shadowed Windows 2000

As I said above I had Windows 2000, with no service packs or updates, installed on this machine in a dual boot configuration. I installed it to a FAT32 partition and had setup fstab, in Linux, to mount it. Heeding the warning in section 5.5.8 of The Wine File System and Drive Layer that says:
"We HIGHLY DISCOURAGE people from directly using a Windows partition with write access as a base for Wine!! (some programs, notably Explorer, corrupt large parts of the Windows partition in case of an incorrect setup; you've been warned)"
I decided to go the "shadowed" route (ie use a copy of the Windows directory). Basically I installed Wine, via the RPM, made a directory /usr/share/wine-2kshadowed, and copied "winnt", "Program Files", and "Documents and Settings" to it.

Wine installs a generic configure file to /etc/wine/wine.conf. This is copied to your home directory, under the .wine directory, as config upon the first use of Wine. I removed the ~/.wine/config file and linked to /etc/wine/wine.conf only because I am also exploring setting up Wine for multiple users on one machine (ie a work environment). You do not have to do this, but just remember that when you run Wine it reads the ~/.wine/config file and not the one in /etc/wine/wine.conf (ie remember to make changes to the correct file). Here is my config file, albeit messy as I have borrowed examples from others posted on the web and newsgroups:

WINE REGISTRY Version 2
;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config
; Stuff at the top that you need but I am not showing
 
; I have no A drive in this machine
 
[Drive C]
"Path" = "/usr/share/wine-2kshadow"
"Type" = "hd"
"Label" = "C"
"Filesystem" = "win95"
 
; A FAT32 partion I created for sharing files that
; is auto-mounted via fstab
[Drive D]
"Path" = "/mnt/fatshare"
"Type" = "hd"
"Label" = "D"
"Filesystem" = "win95"
 
; note: set fstab so that hidden files show up. example:
; /dev/cdrom  /mnt/cdrom  udf,iso9660 noauto,owner,kudzu,unhide,ro 0 0
[Drive E]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Label" = "CD-Rom"
"Filesystem" = "win95"
; make sure that device is correct and has proper permissions !
"Device" = "/dev/cdrom"
 
; I am not using a "drive" for the temp, but you can
 
[Drive G]
"Path" = "${HOME}"
"Type" = "network"
"Label" = "Home"
"Filesystem" = "win95"
 
[Drive Z]
"Path" = "/"
"Type" = "hd"
"Label" = "Root"
"Filesystem" = "win95"
 
[wine]
"Windows" = "c:\\winnt"
; note: need system32 for win2k shadow but system for win9x
"System" = "c:\\winnt\\system32"
"Temp" = "c:\\winnt\\Temp"
"Path" = "c:\\winnt;c:\\winnt\\system;c:\\winnt\\system32;"
"Profile" = "c:\\Documents and Settings\\Administrator"
"GraphicsDriver" = "x11drv"
;"ShowDirSymlinks" = "1"
;"ShowDotFiles" = "1"
"ShellLinker" = "wineshelllink"
; Use case sensitive path here, Wine is not the only place where this value
; is used
"IconsDir" = "C:\\winnt\\Icons"
 
# [wineconf]
 
[Version]
; Windows version to imitate (win95,win98,winme,nt351,nt40,win2k,winxp,win20,win30,win31)
"Windows" = "win2k"
; DOS version to imitate
"DOS" = "6.22"
 
; Be careful here, wrong DllOverrides settings have the potential
; to pretty much kill your setup.
[DllOverrides]
; some dlls you may want to change
"oleaut32"     = "builtin, native"
"ole32"        = "builtin, native"
"commdlg"      = "builtin, native"
"comdlg32"     = "builtin, native"
"shell"        = "builtin, native"
"shell32"      = "builtin, native"
"shfolder"     = "builtin, native"
"shlwapi"      = "builtin, native"
"shdocvw"      = "builtin, native"
"advapi32"     = "builtin, native"
"regsvr32"     = "native, builtin"
"regsrv32.exe" = "native, builtin"
"msvcrt"       = "native, builtin"
"mciavi.drv"   = "native, builtin"
"mcianim.drv"  = "native, builtin"
 
; Got most of the following from newsgroup posts as suggested settings
; Use or don't as needed
;
; For ie6 install
;"compobj" = "native, builtin"
;"ole2" = "native, builtin"
;"ole2nls" = "native, builtin"
;"ole2conv" = "native, builtin"
;"ole2prox" = "native, builtin"
;"ole2thk" = "native, builtin"
;"storage" = "native, builtin"
;"olepro32" = "native, builtin"
;"rpcrt4" = "native, builtin"
;"wininet" = "native, builtin"
 
; For XP and ie6
;"*comctl32" = "builtin"
 
; for the ie runonce
;"setupapi" = "native, builtin"
;"devenum" = "native, builtin"
;"quartz" = "native, builtin"
;"urlmon" = "native"
;"shdocvw" = "native, builtin"
;"jscript" = "native, builtin"
;"wintrust" = "native, builtin"
;"shlwapi" = "native, builtin"
;"secur32" = "native, builtin"
;"crypt32" = "native, builtin"
;"ddraw" = "native, builtin"
 
; For Outlook97
;"mapi" = "native, builtin"
;"mapi32" = "native, builtin"
 
; you can specify applications too
; this one will apply for all notepad.exe
;"*notepad.exe" = "native, builtin"
; this one will apply only for a particular file
;"C:\\windows\\regedit.exe" = "native, builtin"
; default for all other dlls
"*" = "builtin, native"
 
; Lots of sections that you will need but I didn't change anything
 
; the TrueType font dirs you want to make accessible to wine
[FontDirs]
"dir1" = "/usr/X11R6/lib/X11/fonts/TTF"
"dir2" = "/usr/share/wine-2kshadow/winnt/Fonts"
 
; Port stuff you need but I didn't change
 
[Debug]
"RelayExclude" = "RtlEnterCriticalSection;RtlLeaveCriticalSection"
;"RelayInclude" = "user32.CreateWindowA"
;"RelayFromExclude" = "user32;x11drv"
;"RelayFromInclude" = "sol.exe"
;"SnoopExclude" = "RtlEnterCriticalSection;RtlLeaveCriticalSection"
;"SpyExclude" = "WM_SIZE;WM_TIMER;"
 
[registry]
; Stuff you need but I didn't change
 
[Tweak.Layout]
;; supported styles are 'Win31'(default), 'Win95', 'Win98'
;; this has *nothing* to do with the windows version Wine returns:
;; set the "Windows" value in the [Version] section if you want that.
"WineLook" = "Win98"
 
[Clipboard]
"ClearAllSelections" = "1"
"PersistentSelection" = "1"
 
; List of all directories directly contain .AFM files
[afmdirs]
"1" = "/usr/share/fonts/afms/adobe"
"2" = "/usr/share/a2ps/afm"
"3" = "/usr/X11R6/lib/X11/fonts/Type1"
 
; Sound and network stuff you need but I didn't change
 
;; sample AppDefaults entries
 
; 3 InstallShield versions who like to put their full screen window in front,
; without any chance to switch to another X11 application.
; So just catch them in a desktop window.
 
; note for LT2k installer wants full screen. comment out
;[AppDefaults\\_INS0432._MP\\x11drv]
;"Desktop" = "640x480"
 
[AppDefaults\\_INS0466._MP\\x11drv]
"Desktop" = "640x480"
 
[AppDefaults\\_INS0576._MP\\x11drv]
"Desktop" = "640x480"
 
[AppDefaults\\_INS5176._MP\\x11drv]
"Desktop" = "640x480"
 
[AppDefaults\\_INS5576._MP\\x11drv]
"Desktop" = "640x480"
 
[AppDefaults\\_INS5576._MP\\Version]
"Windows" = "win98"
 
; This one seems to work better than the one shown for Win2k's IE5
; it was recommended on the newsgroups for ie6
[AppDefaults\\iexplore.exe\\DllOverrides]
"comctl32" = "native" # for favorites
"commctrl" = "native"
; "crypt32" = "native" # call to uninmplemented
"msvcrt20" = "native"
"msvcrt" = "native"
"oleaut32" = "native"# |
"ole32" = "native"   # |not necessary in order to run
"olepro32" = "native"# |
"rpcrt4" = "native"  # |
"shdocvw" = "native" # .101 PathRemoveBackslashW calls to undocumented
"wininet" = "native"
 
; I am still playing with this
[AppDefaults\\aclt.exe\\DllOverrides]
"msvcrt"        = "native" ;there is a builtin, C runtime library
"msvcirt"       = "native" ;C runtime library
"msvcp60"       = "native" ;C runtime library
"mfc42"         = "native" ;MFC library
"shlwapi"       = "native" ;there is a builtin, shell light-weight utility library
"wininet"       = "native" ;there is a builtin, internet extension
; for the mtext editor
"riched32"      = "native" ;there is a builtin, richedit
; ole support
"ole32"         = "native" ;there is a builtin, ole
"oleaut32"      = "native" ;there is a builtin, ole
"olepro32"      = "native" ;there is a builtin, ole
"oledlg"        = "native" ;there is a builtin, ole
;"urlmon"       = "native" ;there is a builtin, ole
;for properties dialog
"comctl32"      = "native" ;there is a builtin, common controls
"commctrl"      = "native" ;custom controls
;
; things in testing phase
;
;help dialog?
"hhctrl"        = "native"
"clbcatq"       = "native"
"itss"          = "native"
; from dll dependancy trace for acdcimages.arx (design center)
"dnsapi"        = "native"
;"lz32"         = "native" ;there is a builtin
;"netapi32"     = "native" ;there is a builtin, ms lan mgr
"netrap"        = "native"
"rpcrt4"        = "native" ;there is a builtin, remote procedure call (net)
"samlib"        = "native"
"secur32"       = "native" ;security functions
;"version"      = "native" ;there is a builtin
;"winspool"     = "native" ;there is a builtin
"wldap32"       = "native"
"ws2help"       = "native"
"wsock32"       = "native" ;winsock
; delayed load
"activeds"      = "native"
"adsldpc"       = "native"
"cabinet"       = "native"
;"crypt32"      = "native" ;there is a builtin
"dbghelp"       = "builtin" ;for debug
;"imagehlp"     = "builtin" ;there is a builtin, debug
"mlang"         = "native"
"msasn1"        = "native"
"msi"           = "native" ;installer library
"ntdsapi"       = "native"
;"odbc32"       = "native" ;there is a builtin, odbc driver mgr
;"setupapi"     = "native" ;there is a builtin
"sfc"           = "native"
"sfcfiles"      = "native"
;"tapi32"       = "native" ;there is a builtin
"userenv"       = "native"
"w32topl"       = "native"
;"winmm"        = "native" ;there is a builtin, multimedia api
;"wintrust"     = "native" ;there is a builtin
;
; FYI these cause problems so don't do it
;"comdlg32"     = "native" ;builtin, common dialog library
;"shell"        = "native" ;builtin, shell library
;"shell32"      = "native" ;builtin, shell library
;"advapi32"     = "native" ;builtin, advanced windows 32 base api
;"gdi32"        = "native" ;builtin, graphics
;"imm32"        = "native" ;builtin
;"kernel32"     = "native" ;builtin
;"ntdll"        = "native" ;builtin, nt layer
;"user32"       = "native" ;builtin, user api
 
;
;[AppDefaults\\setup.exe\\x11drv]
;"Desktop" = "800x600"
;
;[AppDefaults\\sol.exe\\Version]
;"Windows" = "nt40"
;
;; Some games (Quake 2, UT) refuse to accept emulated dsound devices.
;; You can add an AppDefault entry like this for such cases.
;[AppDefaults\\pickygame.exe\\dsound]
;"EmulDriver" = "N"
 
; These were recommended for installing ie6
; on the newsgroups but I haven't tried them yet
[AppDefaults\\ie6setup.exe\\DllOverrides]
"wininet" = "builtin"
 
[AppDefaults\\ie6setup.exe\\Version]
"Windows" = "win98"
 
[AppDefaults\\ie6wzd.exe\\DllOverrides]
"wininet" = "builtin"
 
[AppDefaults\\ie6wzd.exe\\Version]
"Windows" = "win98"
 
[AppDefaults\\rundll32.exe\\DllOverrides]
; to avoid mstime.dll error when installing IE
"ddraw" = "builtin"
 
# [/wineconf]

 


Installing and Running LT 2000

Screen Shots: 0 1

What ever you do - fake, existing, or shadowed Windows; make sure IE 4 or higher has been installed. Frank's Corner is a great reference. LT wants IE4 or better and it will try to install it if it does not find it (you don't want that). Also, remember that IE6 is required for LT2004.

To install, simply mount your cd in it's drive and run:
wine /path/to/cd/setup.exe
Note that I did have problems when I tried to go the "Custom" route, but "Typical" was fine. When it asked to reboot I selected "No" just because I normally do a manual reboot. When it was finished installing, to which it crashed Wine then,I ran wineboot.

I think it is better to get programs like LT to install via Wine rather than installing them in Windows and copying them over. This is so that the registry entries are properly created.

After installing, go to the "Plotters" directory in the LT directory and remove the "Add-A-Plotter Wizard.lnk" file. Then in the "Plot Styles" directory remove the "Add-A-Plot Style Table Wizard.lnk" file. Otherwise you will get error messages when going into "Options".

Once LT2k is installed you can run it with:
wine /path/to/Program\ Files/AutoCAD\ LT\ 2000/aclt.exe
Right now I am using wine -debugmsg +loaddll [program], among other debug settings, in a console window to see the dlls as they load.

At this point I can:

  • open and save drawings (see below)
  • zoom and pan
  • draw, dimension, and erase
  • insert blocks
  • setup text styles and use available shx and TT fonts
  • setup dimension styles
  • edit dtext and mtext
  • load linetypes
  • use the plotter wizard
  • use REVDATE
  • use QSELECT and FILTER
  • use the property painter
  • use osnaps, ortho, and polar tracking
  • use the array dialog
  • hatch via dialog, hatch edit, and use associative hatching
  • use my wheel mouse for pan and zoom
  • use the group manager
  • hide and shade
  • create regions
  • use revcloud
  • paste text from clipboard
  • use spell check
  • use "search the web" in the file dialogs so long as the default http address is not the one that points back to autodesk
  • use the UCS dialog
  • display lineweights and use the lineweight dialog
  • use the point dialog
  • plot to a file using one of the built-in LT drivers (I use postscript and then GSView to actually plot it to my Epson printer via CUPS)
  • use the side window help in the plot dialog
  • use the Options dialog (seems to work with what I have tried so far)
  • use the units dialog
  • use the rename dialog
  • use ai_molc (make selected object layer the current one)
  • use the object properties toolbar
  • use Properties
  • use attedit (the dialog version) to edit attributes
  • use display order commands (send to front/back)

 

At this point I cannot:

  • dock floating toolbars (and undocked looks ugly) [tip: use -toolbar instead]
  • use Design Center (it runs but isn't useable and will lock up LT)
  • plot to my networked Epson printer (CUPS)
  • do a full plot preview using the Epson (but I can if I use one of the built-in drivers)
  • use help
  • copy to clipboard
  • paste anything else besides text from clipboard

 

Things that are acting strangely:

  • LT often starts small, like it can't remember the window metrics it was set to. Originally I thought this was limited to the maximized state, but have since found otherwise.
  • Using the layer dialog can be tricky at times, unless you use the "details" option.
  • Attaching and otherwise manipulating xrefs works but the dialog can act weird occasionally.
  • The purge dialog does not appear correctly at first and after using, but selecting 'cannot' and then 'can' will get it to appear correctly.
  • The open dialog does not show previews, but the startup dialog will.
  • When an shx font is selected in the text style dialog its' name will not appear when you re-enter the dialog (though it is still selected).
  • After using some dialogs LT will not get the focus when you exit from them.
  • Using soft linked (ln -s) directories for saveas gives a "path does not exist" error, but it seems to work for open (file, insert, xref) and save (qsave).
  • Trying to create layer names that are long and/or have spaces in the name doesn't seem to work occasionally. I think it is just when the layer dialog is first run or maybe before another layer exists besides 0. Need to test this more.

 

So currently I have it usable for occasional or home/hobby type work. Hopefully I can get further shortly.


Tips

To edit a PC3 you have created you must use pc3exe.exe found in the LT directory and give it the PC3 file you want to edit. Example:
wine /usr/share/wine-2kshadow/Program\ Files/AutoCAD\ LT\ 2000/pc3exe.exe "C:\\Program Files\\AutoCAD LT 2000\\PLOTTERS\\epson.pc3"

To edit a plot style, CTB or STB, that you have created you must use styexe.exe and give it the CTB or STB file you want to edit. Example:
wine /usr/share/wine-2kshadow/Program\ Files/AutoCAD\ LT\ 2000/styexe.exe "C:\\Program Files\\AutoCAD LT 2000\\Plot Styles\\aclt.ctb"

When using the xref dialog to bind, choose the choice opposite of what you want. Ie bind does an insert and insert does a bind.

If Properites appears and updates its' info with what you select but you cannot change anything, make sure you have commctrl.dll.


Links