Does anyone know how to temporarily update the DEVPATH so that a spawned process will recognize the update? Here's the scenario. We need to add a directory to the DEVPATH, if it's not already there, so we do the following: dir = "./devices" path = axlGetVariable("devpath") if( ! member( dir parseString(path)) then axlSetVariable("devpath" strcat(dir " " path)) ) Now this works well, while you are in the Allegro session. Now we want to spawn netin to import a 3rd party netlist and have it recognize that the new directory we added is where to look for the devices. The code above only affects the current Allegro session and not any spwaned processes, which is the case with netin. I know that can I manually update the pcbenv/env file to add and then delete the dir from the DEVPATH, but I was looking for a simpler method. Any suggestions? Charlie
I have been trying to find a work-around for this problem for years. What I did was automatically create a macro to run the netin from within Allegro. (It uses the path already in memory) Of course the problem with this is having to test/update the macro with every new release.
I have running the netin through a macro (setting the approriate form flags) and it stills doesn't recognize the DEVPATH. Am I missing something? Here is the script I use. scriptmode +invisible scriptmode +noinfo setwindow pcb netin setwindow form.niparams FORM niparams netin_netlist YES FORM niparams other partslist FORM niparams filename partslist FORM niparams syntax_check_only NO FORM niparams supercede YES FORM niparams append_device_log NO FORM niparams remove_etch_other NO FORM niparams place_never_other YES FORM niparams import scriptmode -invisible scriptmode -noinfo
I was updating the PSMPATH not the DEVPATH. I'll have to do some investigating. When are you updating the variable? Our update is done at load (allegro.ilinit).
I am checking/updating the DEVPATH when I run the function. I wouldn't want to put it in the allegro.ilinit as it is specific to the application I am developing.