[不死猫出品]VLisp开发小助手2009贺岁版(对象查看修改+代码自动生成)
本帖最后由 nonsmall 于 2013-4-24 17:51 编辑 <br /><br /><P><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000>感谢各位关注 Visual Lisp 开发小助手 (对象查看修改器+代码自动生成器) 更新 by nonsmall 20080122 </FONT></P><P><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000>使用命令LISP</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000 size=5><STRONG>快来看哪 新鲜热乎的vlisp开发工具 先到先得</STRONG></FONT></P>
<P>-------------------------</P>
<P>发布1.5 贺岁版 </P>
<P>如果不方便用Lisp编辑器你就新开个CAD用</P>
<P>修正bug:</P>
<P>1 entsel赋变量会死掉</P>
<P>2 剪切板访问错误解除</P>
<P>增加功能: </P>
<P>1 两次属性值对比 如选择一个图元后 记录一下 退出小助手修改图元 再用小助手查看对比属性</P>
<P>2 属性修改会自动生成vla-put</P>
<P>3 可在EXCEL文件中自定义根对象 自定义帮助文件路径和帮助文件的查询代码(右键帮助页面属性 对应我给的例子修改即可) 保存后重新运行小助手(支持Lisp语句哦!)</P>
<P>4 自动复制和手动复制切换功能</P>
<P>5 合并获得对象按钮 同样支持变量和Excel.Application形式</P>
<P>6 增加color属性</P>
<P>7 新的树型布局 价格不变量更足</P>
<P>-------------------------</P>
<P>发布1.4版 分为简体 繁体 英文3个版本</P>
<P>-------------------------</P>
<P>程序基本功能:</P>
<P>实现Lisp可识别对象的属性方法.可以即时属性查看修改,自动在CHM中对应查询,代码全自动生成,写入记事本,可以自定义变量,不会lisp的人也能点出代码来.</P>
<P>-------------------------</P>
<P>程序具体功能介绍:</P>
<P>1 左侧列表生成visual lisp可识别的对象模型列表(支持变量 外部控件 图面选择)</P>
<P>2 右侧列表查看对象的属性和方法(属性可以进行即时修改)</P>
<P>3 <FONT style="BACKGROUND-COLOR: #ffff00">单击任意列表自动生成代码</FONT>(注意方法的代码需要测试否则直接加载可能会有错误 因为参数不足)</P>
<P>4 目录树双击查看子对象</P>
<P>5 <FONT style="BACKGROUND-COLOR: #ccff00">属性 方法列表双击自动在CHM帮助中查询</FONT> 可以自己选择中文帮助(或自己将中文帮助替换英文的)</P>
<P>6 两侧属性实现对应关系</P>
<P>7 <FONT style="BACKGROUND-COLOR: #00ff00">任何生成的代码均可自动复制到内存剪切板中</FONT> 到其他地方可以直接粘贴</P>
<P>8 使用<FONT color=#ff0000>命令Lisp</FONT> (最初的2个版本为autolisp)</P>
<P>9 支持加载到命令行查看结果</P>
<P>10 方法的使用自己添加<FONT style="BACKGROUND-COLOR: #00ffcc">参数(支持变量)中间需要用</FONT><FONT style="BACKGROUND-COLOR: #00ffff">英文标点<FONT color=#ff0000>,</FONT>分割</FONT>(就像VBA的使用)</P>
<P>11 自动写入记事本文件</P>
<P>12 支持<FONT style="BACKGROUND-COLOR: #ffff00">给代码赋予变量 即时生效</FONT></P>
<P>------------------------------------------</P>
<P><FONT style="BACKGROUND-COLOR: #00ff33">小技巧</FONT>:对象属性修改后双击左边列表可以刷新对象属性显示 查看属性是否修改成功!</P>
<P><FONT style="BACKGROUND-COLOR: #00ff33">小技巧</FONT>:支持GetBoundingBox获得对象范围输入'pa,'pb</P>
<P>可以自动生成代码:(vlax-invoke-method (vlax-ename->vla-object (car (entsel))) 'GetBoundingBox 'pa 'pb )</P>
<P><FONT style="BACKGROUND-COLOR: #00ff33">小技巧</FONT>:生成的代码返回值如果是对象变量 可以直接复制代码到查看变量 如果弹出帮助是英文的 可以把明经的帮助替换CAD原帮助</P>
<P><FONT style="BACKGROUND-COLOR: #00ff33">小技巧</FONT>:属性修改和方法测试支持变量.如(setq n 50)可以对AddCircle使用(list n n),n</P>
<P>生成代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'AddCircle (vlax-3d-point (list n n)) n )</P>
<P>---------------------------</P>
<P>注意:</P>
<P><FONT style="BACKGROUND-COLOR: #ccff00">如果反复提示"是否网页访问剪切板"或; 错误: OpenClipboard 失败</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ccff00">请设置IE浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问(此问题从1.5版本已经修正)</FONT></P>
<P>--------------------</P>
<P>以后计划: 能直接生成VBA的代码 定制用户自己的配置 提供常用对象的列表 增加自定义变量赋值......(再做下去不知道会怎样 很期待啊 难道做个迷你的vlisp编辑器出来? o(∩_∩)o...)</P>
<P>---------------------<BR>程序下载:</P>
<P></P>
<P>v1.5 贺岁版</P>
<P></P>
<P><BR></P>
<P>V1.4</P>
<P>简体</P>
<P></P>
<P>繁体1</P>
<P></P>
<P>繁体2</P>
<P></P>
<P>English</P>
<P></P>
<P></P>
<P></P>
<P>本站的VBA参考链接</P>
<P><A href="http://www.mjtd.com/Soft/SoftShow.asp?SoftID=132">http://www.mjtd.com/Soft/SoftShow.asp?SoftID=132</A></P>
<P></P>
<P></P> 大哥你老实交代,你拿去破解了没 ?
楼上出现"再顶"的字样貌似有了这么一回事,哈哈
真的会红,肯定会红,我必须把帖子人工置顶 正规一点的图都是一张图一个文件,你这个办法针对这情况行不? zhaozwf 发表于 2008-12-16 22:01
太爽了,呵呵,支持
我是LISP小白 本帖最后由 作者 于 2008-12-25 17:54:59 编辑 <br /><br /> <p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;"><font style="BACKGROUND-COLOR: #00ffcc;">Visual Lisp 开发小助手 v1.1 简明教程</font><br/>说明 <br/>{O}:object 表示对象目录树列表<br/>{P}:property 表示属性列表<br/>{M}:methods 表示方法列表</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">{}ActiveDocument 表示在某个列表中单击 "ActiveDocument"</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;"><PI>:property input 表示属性输入栏<br/><MI>:methods input 表示方法输入栏 使用英文标点,分隔参数!<br/><>:(0 0) 表示输入栏内输入内容 可能是字符串 整数 实数 点表</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">-----------代码生成教程开始--------------<br/>先新开一张图</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">1 建立一个图层<br/>{O}ActiveDocument->{O}Layers->{M}add-><MI>"new"->测试<br/>下面代码出现结果说明方法成功!<br/>复制代码后退出程序可以看见建立了一个新的new层</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Add "new" )</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">2 绘制一条线<br/>{O}ActiveDocument->{O}ModelSpace->{M}AddLine-><MI>(0 0),(100 100)->测试</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'AddLine (vlax-3d-point '(0 0)) (vlax-3d-point '(100 100)) )</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">3 修改刚才的线的图层为new<br/>选择对象->图面选择刚才生成的线->{P}layer->{PI}"new"->修改</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-put-property (vlax-ename->vla-object (car (entsel))) 'Layer "new")</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">4 获取画面上第一个图元(就是刚才的线)<br/>{O}ActiveDocument->{O}ModelSpace->{M}item-><MI>0->测试</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 )</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">5 修改上面代码的对象的起点坐标<br/>命令行输入:<br/>(setq name (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 ))<br/>回车<br/>打开小助手<br/>当前根对象输入name->查看变量->{P}StartPoint-><PI>(0 200)->修改</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-put-property name 'StartPoint (vlax-3d-point '(0 200)))</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">6 刚才的new层删除<br/>{O}ActiveDocument->{O}Layers->{M}item-><MI>"new"->测试</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" )<br/>命令行输入:<br/>(setq lay (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" ))</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">打开小助手<br/>当前根对象输入lay->查看变量->{M}Delete->测试</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成代码:(vlax-invoke-method lay 'Delete )<br/>该层删除成功</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">上面说的都很简单 复杂一点例如求交点也可以 自己尝试一下吧:)</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">------------代码生成教程结束------------</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">怎么样?用鼠标点一点就能生成代码<br/>对新人会有帮助吧?<br/>如果你不知道属性和方法的含义<br/>双击它就会打开帮助页面帮你查询!<br/>明经通道的那本VBA帮助一定要放到搜索目录下面文件名必须acadauto.chm</font></p><p>如果反复提示"是否网页访问剪切板"</p><p>请设置IE浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问</p><p>版本更新预留</p><p><br/></p> 支持一个。很用心的作品 还有改进的空间,关注中。。。 先顶一下!! <p>哇撒 楼上几个把我挤门外去了 好东西 顶下</p><p>佳菲继前几次之后又来骗精华? 呵呵</p><p>多骗点 哈哈 </p> <p>这是个很有用地东西!实用</p> <p>很好,<strong><font face="Verdana" color="#61b713">nonsmall辛苦了</font></strong></p> 本帖最后由 作者 于 2008-12-15 12:52:07 编辑 <br /><br /> <p>再顶!!</p> lidejun_55发表于2008-12-15 11:34:00static/image/common/back.gif这是个很有用地东西!实用
<p>大哥你老实交代,你拿去破解了没 ? </p><p>楼上出现"<font color="#ff0000">再顶</font>"的字样貌似有了这么一回事,哈哈</p><p>真的会红,肯定会红,我必须把帖子人工置顶</p>