nonsmall 发表于 2008-12-15 09:32:00

[不死猫出品]VLisp开发小助手2009贺岁版(对象查看修改+代码自动生成)

本帖最后由 nonsmall 于 2013-4-24 17:51 编辑 <br /><br /><P><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000>感谢各位关注 Visual Lisp 开发小助手 (对象查看修改器+代码自动生成器)&nbsp; 更新 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-&gt;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>

fayadetudou 发表于 2023-10-26 15:43:30

大哥你老实交代,你拿去破解了没 ?

楼上出现"再顶"的字样貌似有了这么一回事,哈哈

真的会红,肯定会红,我必须把帖子人工置顶

fayadetudou 发表于 2023-10-26 16:19:21

正规一点的图都是一张图一个文件,你这个办法针对这情况行不?

296715530 发表于 2019-11-25 16:12:39

zhaozwf 发表于 2008-12-16 22:01
太爽了,呵呵,支持

我是LISP小白

nonsmall 发表于 2008-12-15 09:33:00

本帖最后由 作者 于 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&nbsp;&nbsp; 表示对象目录树列表<br/>{P}:property 表示属性列表<br/>{M}:methods&nbsp; 表示方法列表</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">{}ActiveDocument 表示在某个列表中单击 "ActiveDocument"</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">&lt;PI&gt;:property input&nbsp;&nbsp;&nbsp; 表示属性输入栏<br/>&lt;MI&gt;:methods input&nbsp;&nbsp;&nbsp;&nbsp; 表示方法输入栏 使用英文标点,分隔参数!<br/>&lt;&gt;:(0 0)&nbsp;&nbsp;&nbsp;&nbsp; 表示输入栏内输入内容 可能是字符串 整数 实数 点表</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-&gt;{O}Layers-&gt;{M}add-&gt;&lt;MI&gt;"new"-&gt;测试<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-&gt;{O}ModelSpace-&gt;{M}AddLine-&gt;&lt;MI&gt;(0 0),(100 100)-&gt;测试</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/>选择对象-&gt;图面选择刚才生成的线-&gt;{P}layer-&gt;{PI}"new"-&gt;修改</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">生成的代码:(vlax-put-property (vlax-ename-&gt;vla-object (car (entsel))) 'Layer "new")</font></p><p><font color="#000000" style="BACKGROUND-COLOR: #ffffff;">4 获取画面上第一个图元(就是刚才的线)<br/>{O}ActiveDocument-&gt;{O}ModelSpace-&gt;{M}item-&gt;&lt;MI&gt;0-&gt;测试</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-&gt;查看变量-&gt;{P}StartPoint-&gt;&lt;PI&gt;(0 200)-&gt;修改</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-&gt;{O}Layers-&gt;{M}item-&gt;&lt;MI&gt;"new"-&gt;测试</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-&gt;查看变量-&gt;{M}Delete-&gt;测试</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>

carrot1983 发表于 2008-12-15 10:01:00

支持一个。很用心的作品

carrot1983 发表于 2008-12-15 10:10:00

还有改进的空间,关注中。。。

caoyin 发表于 2008-12-15 10:13:00

先顶一下!!

16335181 发表于 2008-12-15 10:36:00

<p>哇撒&nbsp;&nbsp; 楼上几个把我挤门外去了&nbsp; 好东西&nbsp;&nbsp; 顶下</p><p>佳菲继前几次之后又来骗精华?&nbsp;&nbsp;&nbsp;&nbsp; 呵呵</p><p>多骗点 哈哈&nbsp;&nbsp;&nbsp;&nbsp; </p>

cnks 发表于 2008-12-15 11:34:00

<p>这是个很有用地东西!实用</p>

狂刀无痕 发表于 2008-12-15 12:37:00

<p>很好,<strong><font face="Verdana" color="#61b713">nonsmall辛苦了</font></strong></p>

cnks 发表于 2008-12-15 12:51:00

本帖最后由 作者 于 2008-12-15 12:52:07 编辑 <br /><br /> <p>再顶!!</p>

16335181 发表于 2008-12-15 14:18:00

lidejun_55发表于2008-12-15 11:34:00static/image/common/back.gif这是个很有用地东西!实用

<p>大哥你老实交代,你拿去破解了没&nbsp;?&nbsp; </p><p>楼上出现"<font color="#ff0000">再顶</font>"的字样貌似有了这么一回事,哈哈</p><p>真的会红,肯定会红,我必须把帖子人工置顶</p>
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [不死猫出品]VLisp开发小助手2009贺岁版(对象查看修改+代码自动生成)