mitchellrodhous Posted June 14, 2010 Share Posted June 14, 2010 Hey! Smal question, I have the fellowing command in my lisp file: ;Start of Command Function (command "-insert" "listscharnier" "_non" ip "" "" "0" "-insert" "listscharnier" "_non" p6 "" "" "0" ) ;End command now this command let me load an block listscharnier. The only problem is that I have to load this block first in to my drawing, is it posible to change the command it opens an external block? Thanks MR Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 Hi Mitchell, I would be inclined to use something like this: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] InsertBlock [b][color=RED]([/color][/b] blockname point scale ang [b][color=BLUE]/[/color][/b] doc spc [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [color=Blue][b]AcModelSpace[/b][/color] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSpace[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [color=Blue][b]:vlax-true[/b][/color] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-MSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ModelSpace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-PaperSpace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#a52a2a]"BLOCK"[/color][/b] blockname[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] blockname [b][color=RED]([/color][/b][b][color=BLUE]findfile[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] blockname [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-filename-extension[/color][/b] blockname[b][color=RED])[/color][/b] [b][color=#a52a2a]""[/color][/b] [b][color=#a52a2a]".dwg"[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE]nil[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-insertblock[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] point[b][color=RED])[/color][/b] blockname scale scale scale ang [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] Call it in your code like this: [color=Red][b]([/b][/color][color=Blue][b]InsertBlock [/b][/color][color=Green][b]<blockname> <point> <scale> <angle>[/b][/color][b][color=Red])[/color][/b] The code will return a VLA Block Reference Object if successful, else nil. Lee Quote Link to comment Share on other sites More sharing options...
Tiger Posted June 14, 2010 Share Posted June 14, 2010 Please name your threads to something more specific - everyone that reads this, especiallly in the Customization-forum! Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 thanks for reply! probobly it is working only, I would prefer that I can ad an code were he changes the search area's. On this way I can put al my blocks in one folder and get them from that location... Regards MR Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 I'm not sure that I understand your post. The code I provided will insert blocks provided either a full path is given, or, failing that, if the block resides in a support path. Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 ok, If I use the insert command by using lisp, the program is searchin in standard locations, like I notice below: Insertion Point : "scharnier.dwg": Can't find file in search path: U:\ (current directory) C:\Documents and Settings\*****\application data\autodesk\autocad 2011\r18.1\enu\support\ C:\program files\autodesk\autocad 2011\support\ C:\program files\autodesk\autocad 2011\fonts\ C:\program files\autodesk\autocad 2011\help\ C:\program files\autodesk\autocad 2011\express\ C:\program files\autodesk\autocad 2011\support\color\ C:\Program Files\Autodesk\AutoCAD 2011\drv\ C:\Program Files\Autodesk\AutoCAD 2011\ *Invalid* ; error: Function cancelled Now I want to add an location to this list so he wil load from a different location;) Regards MR Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 You want to add the new location through LISP or manually? Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 I would be perfect to do it with LISP, If I can automatic load it by starting up autocad would also be fine... Regards MR Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 Why would you need to do it more than once? Do you mean for difference computers? You could just Go to Tools > Options > Files > Support Paths and change it there, and then it won't change. Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 you'r correct, I want add an path under: Tools > Options > Files > Support Paths Only we using the lisp files with more computer external, so I do not know if it is possebly to create that path to the folder automatic by starting the lisp. So I do not have to create that path on different computers? Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 You mean create the directory structure on the computer or add the Support path through LISP? Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 add an support path trough LISP;) Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 Yes, it can be done: Adding/Removing Support Paths: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:AddSupportPaths [b][color=RED]([/color][/b] lst [b][color=BLUE]/[/color][/b] PreferenceFiles SupportPaths [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [i][color=#990099];; (AddSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] SupportPaths [b][color=RED]([/color][/b][b][color=BLUE]vla-get-SupportPath[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] PreferenceFiles [b][color=RED]([/color][/b][b][color=BLUE]vla-get-files[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-preferences[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-put-SupportPath[/color][/b] PreferenceFiles [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] SupportPaths [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] s [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-string-search[/color][/b] s SupportPaths[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] lst [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#a52a2a]";"[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] lst [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:RemoveSupportPaths [b][color=RED]([/color][/b] lst [b][color=BLUE]/[/color][/b] PreferenceFiles SupportPaths [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [i][color=#990099];; (RemoveSupportPaths '("C:\\Folder" "C:\\Folder\\Subfolder" ... )[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] SupportPaths [b][color=RED]([/color][/b][b][color=BLUE]vla-get-SupportPath[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] PreferenceFiles [b][color=RED]([/color][/b][b][color=BLUE]vla-get-files[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-preferences[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-put-SupportPath[/color][/b] PreferenceFiles [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] s [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-position[/color][/b] s lst[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b]LM:StringParser SupportPaths [b][color=#a52a2a]";"[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#a52a2a]";"[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] lst [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:lst->str [b][color=RED]([/color][/b] lst del [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] del [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:StringParser [b][color=RED]([/color][/b] str del [color=Blue][b]/[/b][/color] pos [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pos [b][color=RED]([/color][/b][b][color=BLUE]vl-string-search[/color][/b] del str[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=#009900]1[/color][/b] pos[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]LM:StringParser [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] pos [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] str[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] Creating a Directory Structure: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:MakeDirectory [b][color=RED]([/color][/b] dir [b][color=BLUE]/[/color][/b] MakeDirectory folders [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [i][color=#990099];; (LM:MakeDirectory "C:\\Folder\\Subfolder")[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] MakeDirectory [b][color=RED]([/color][/b] root folders [b][color=BLUE]/[/color][/b] d [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] folders [b][color=RED]([/color][/b]MakeDirectory [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-mkdir[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] d [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] root [b][color=#a52a2a]"\\"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] folders[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] d [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] folders[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] folders [b][color=RED]([/color][/b]LM:StringParser dir [b][color=#a52a2a]"\\"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]MakeDirectory [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] folders[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] folders[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:StringParser [b][color=RED]([/color][/b] str del [b][color=BLUE]/[/color][/b] pos [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac ~ 14.06.10[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pos [b][color=RED]([/color][/b][b][color=BLUE]vl-string-search[/color][/b] del str[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=#009900]1[/color][/b] pos[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]LM:StringParser [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] pos [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] str[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] Quote Link to comment Share on other sites More sharing options...
mitchellrodhous Posted June 14, 2010 Author Share Posted June 14, 2010 yep that's what I needed Thank you Lee ; ) Regards MR Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2010 Share Posted June 14, 2010 You're welcome. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.