这不是问题,Cary-我更希望您理解我的代码在做什么,而不是仅仅接受它。
如果你还对什么事感到困惑,尽管问。
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:psfix [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] ct lay i ss ent[b][color=RED])[/color][/b] [i][color=#990099];; Initiate Defun and localise Vars[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Load Visual LISP Console[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ct [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"ctab"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Store Current Layout[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] lay [b][color=RED]([/color][/b][b][color=BLUE]layoutlist[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; For Every Layout in the Drawing[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CTAB"[/color][/b] [b][color=#ff00ff]"PSLTSCALE"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] lay [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099];; Apply the function 'setvar' to each argument in each list.[/color][/i]
- [i][color=#990099];; Setvar needs two arguments, sys var and value, so mapcar needs[/color][/i]
- [i][color=#990099];; two lists.[/color][/i]
- [i][color=#990099];; This is equivalent to putting (setvar "CTAB" lay) (setvar "PSLTSCALE" 1)[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-cmdf[/color][/b] [b][color=#ff00ff]"_.mspace"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Equivalent to (command "_.mspace")[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"ANNOALLVISIBLE"[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Set Sys Var ANNOALLVISIBLE to 1[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-cmdf[/color][/b] [b][color=#ff00ff]"_.pspace"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Equivalent to (command "_.pspace")[/color][/i]
- [b][color=RED])[/color][/b] [i][color=#990099]; end foreach[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=#009900]-1[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"VIEWPORT"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099];; If there are Viewports in the Database[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]ssname[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099];; While we can get an entity name in the Selection Set[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-apply[/color][/b] [i][color=#990099];; Apply the following function and catch any errors[/color][/i]
- [i][color=#990099];; This is like using 'apply' except the program will not crash if[/color][/i]
- [i][color=#990099];; there is an error executing the function.[/color][/i]
- [b][color=DARKRED]'[/color][/b][b][color=BLUE]vla-put-displaylocked[/color][/b] [i][color=#990099];; Property of the Viewport to determine if it is locked.[/color][/i]
- [i][color=#990099];; List of arguments that belong to 'vla-put-displaylocked'[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] ent[b][color=RED])[/color][/b] [i][color=#990099];; convert the ename to a VLA-object[/color][/i]
- [b][color=Blue]:vlax-true[/color][color=RED])[/color][/b] [i][color=#990099];; Boolean True - hence the Viewport will be locked[/color][/i]
-
- [b][color=RED])[/color][/b] [i][color=#990099]; end vl-catch-all-apply[/color][/i]
-
- [b][color=RED])[/color][/b] [i][color=#990099]; end While[/color][/i]
-
- [b][color=RED])[/color][/b] [i][color=#990099]; end IF[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"MSLTSCALE"[/color][/b] [b][color=#ff00ff]"LTSCALE"[/color][/b] [b][color=#ff00ff]"CTAB"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=#009900]1[/color][/b] [b][color=#009900]1[/color][/b] ct[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099];; Same logic as above - read about 'mapcar' to learn more.[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Exit Quietly - i.e. suppress last return[/color][/i]
- [b][color=RED])[/color][/b] [i][color=#990099];; End Defun[/color][/i]
李
PS>也许还可以在Visual LISP编辑器帮助文件中查找一些您不熟悉的函数——(命令行中的VLIDE)。 |