© 博学网 (Boxue58)

 Forgot password?
 注册register
Search
12Next
Return to list New
View: 16061|Reply: 18
Collapse the left

VLisp开发小助手1.4(对象查看修改+Lisp代码全自动生成)

  [Copy link]
Post time 2009-3-17 22:15:24 | Show all posts |Read mode

I want to Be A member...

You have to Login for download or view attachment(s). No Account? Register

x
朋友做的查看和升成VLISP代码的小工具,很实用的
来自:明经通道 nonsmall
描述:AutoCAD
图片:
116_518080_30df660c7ed471d.jpg
描述:Excel
图片:
116_518080_3aeff1b67225d18.jpg
Visual Lisp 开发小助手 (对象查看修改器+代码自动生成器)更新 by nonsmall 20081226

-------------------------
程序基本功能:
实现Lisp可识别对象的属性方法.可以即时属性查看修改,自动在CHM中对应查询,代码全自动生成,写入记事本,可以自定义变量,不会lisp的人也能点出代码来.
-------------------------
程序具体功能介绍:
1 左侧列表生成visual lisp可识别的对象模型列表(支持变量 外部控件 图面选择)
2 右侧列表查看对象的属性和方法(属性可以进行即时修改)
3 单击任意列表自动生成代码(注意方法的代码需要测试否则直接加载可能会有错误 因为参数不足)
4 目录树双击查看子对象
5 属性 方法列表双击自动在CHM帮助中查询 可以自己选择中文帮助(或自己将中文帮助替换英文的)
6 两侧属性实现对应关系
7 任何生成的代码均自动复制到内存剪切板中 到其他地方可以直接粘贴
8 使用命令Lisp (最初的2个版本为autolisp)
9 支持加载到命令行查看结果
10 方法的使用自己添加参数(支持变量)中间需要用英文标点,分割(就像VBA的使用)
11 自动写入记事本文件
12 支持给代码赋予变量 即时生效
------------------------------------------
小技巧:对象属性修改后双击左边列表可以刷新对象属性显示 查看属性是否修改成功!
小技巧:支持GetBoundingBox获得对象范围输入'pa,'pb
可以自动生成代码vlax-invoke-method (vlax-ename->vla-object (car (entsel))) 'GetBoundingBox 'pa 'pb )
小技巧:生成的代码返回值如果是对象变量 可以直接复制代码到查看变量 如果弹出帮助是英文的 可以把明经的帮助替换CAD原帮助
小技巧:属性修改和方法测试支持变量.如(setq n 50)可以对AddCircle使用(list n n),n
生成代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'AddCircle (vlax-3d-point (list n n)) n )
---------------------------
注意:
如果反复提示\"是否网页访问剪切板\"或; 错误: OpenClipboard 失败
请设置IE浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问
--------------------

描述:程序

Lisp_1_4_SC.rar

9 KB, Downloads: 84

 Author| Post time 2009-3-17 22:16:30 | Show all posts
Visual Lisp 开发小助手 简明教程
说明
{O}bject 表示对象目录树列表
{P}:property 表示属性列表
{M}:methods表示方法列表

{}ActiveDocument 表示在某个列表中单击 "ActiveDocument"

<I>:property input表示属性输入栏
<MI>:methods input 表示方法输入栏 使用英文标点,分隔参数!
<>0 0) 表示输入栏内输入内容 可能是字符串 整数 实数 点表

-----------代码生成教程开始--------------
先新开一张图

1 建立一个图层
{O}ActiveDocument->{O}Layers->{M}add-><MI>"new"->测试
下面代码出现结果说明方法成功!
复制代码后退出程序可以看见建立了一个新的new层

生成的代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;Layers) &#39;Add "new" )

2 绘制一条线
{O}ActiveDocument->{O}ModelSpace->{M}AddLine-><MI>(0 0),(100 100)->测试

生成的代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;ModelSpace) &#39;AddLine (vlax-3d-point &#39;(0 0)) (vlax-3d-point &#39;(100 100)) )

3 修改刚才的线的图层为new
选择对象->图面选择刚才生成的线->{P}layer->{PI}"new"->修改

生成的代码vlax-put-property (vlax-ename->vla-object (car (entsel))) &#39;Layer "new")

4 获取画面上第一个图元(就是刚才的线)
{O}ActiveDocument->{O}ModelSpace->{M}item-><MI>0->测试

生成的代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;ModelSpace) &#39;Item 0 )

5 修改上面代码的对象的起点坐标
命令行输入:
(setq name (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;ModelSpace) &#39;Item 0 ))
回车
打开小助手
当前根对象输入name->查看变量->{P}StartPoint-><I>(0 200)->修改

生成的代码vlax-put-property name &#39;StartPoint (vlax-3d-point &#39;(0 200)))

6 刚才的new层删除
{O}ActiveDocument->{O}Layers->{M}item-><MI>"new"->测试

生成代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;Layers) &#39;Item "new" )
命令行输入:
(setq lay (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;Layers) &#39;Item "new" ))

打开小助手
当前根对象输入lay->查看变量->{M}Delete->测试

生成代码vlax-invoke-method lay &#39;Delete )
该层删除成功

上面说的都很简单 复杂一点例如求交点也可以 自己尝试一下吧

------------代码生成教程结束------------

怎么样?用鼠标点一点就能生成代码
对新人会有帮助吧?
如果你不知道属性和方法的含义
双击它就会打开帮助页面帮你查询!
明经通道的那本VBA帮助一定要放到搜索目录下面文件名必须acadauto.chm




感谢各位关注 Visual Lisp 开发小助手 (对象查看修改器+代码自动生成器)更新 by nonsmall 20080122

使用命令LISP

快来看哪 新鲜热乎的vlisp开发工具 先到先得

-------------------------

发布1.5 贺岁版

如果不方便用Lisp编辑器你就新开个CAD用

修正bug:

1 entsel赋变量会死掉

2 剪切板访问错误解除

增加功能:

1 两次属性值对比 如选择一个图元后 记录一下 退出小助手修改图元 再用小助手查看对比属性

2 属性修改会自动生成vla-put

3 可在EXCEL文件中自定义根对象 自定义帮助文件路径和帮助文件的查询代码(右键帮助页面属性 对应我给的例子修改即可) 保存后重新运行小助手(支持Lisp语句哦!)

4 自动复制和手动复制切换功能

5 合并获得对象按钮 同样支持变量和Excel.Application形式

6 增加color属性

7 新的树型布局 价格不变量更足

-------------------------

发布1.4版 分为简体 繁体 英文3个版本

-------------------------

程序基本功能:

实现Lisp可识别对象的属性方法.可以即时属性查看修改,自动在CHM中对应查询,代码全自动生成,写入记事本,可以自定义变量,不会lisp的人也能点出代码来.

-------------------------

程序具体功能介绍:

1 左侧列表生成visual lisp可识别的对象模型列表(支持变量 外部控件 图面选择)

2 右侧列表查看对象的属性和方法(属性可以进行即时修改)

3 单击任意列表自动生成代码(注意方法的代码需要测试否则直接加载可能会有错误 因为参数不足)

4 目录树双击查看子对象

5 属性 方法列表双击自动在CHM帮助中查询 可以自己选择中文帮助(或自己将中文帮助替换英文的)

6 两侧属性实现对应关系

7 任何生成的代码均可自动复制到内存剪切板中 到其他地方可以直接粘贴

8 使用命令Lisp (最初的2个版本为autolisp)

9 支持加载到命令行查看结果

10 方法的使用自己添加参数(支持变量)中间需要用英文标点,分割(就像VBA的使用)

11 自动写入记事本文件

12 支持给代码赋予变量 即时生效

------------------------------------------

小技巧:对象属性修改后双击左边列表可以刷新对象属性显示 查看属性是否修改成功!

小技巧:支持GetBoundingBox获得对象范围输入&#39;pa,&#39;pb

可以自动生成代码vlax-invoke-method (vlax-ename->vla-object (car (entsel))) &#39;GetBoundingBox &#39;pa &#39;pb )

小技巧:生成的代码返回值如果是对象变量 可以直接复制代码到查看变量 如果弹出帮助是英文的 可以把明经的帮助替换CAD原帮助

小技巧:属性修改和方法测试支持变量.如(setq n 50)可以对AddCircle使用(list n n),n

生成代码vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) &#39;ActiveDocument) &#39;ModelSpace) &#39;AddCircle (vlax-3d-point (list n n)) n )

Lisp_v15.rar

21 KB, Downloads: 38

 Author| Post time 2009-3-17 22:17:06 | Show all posts
用VLISP调用CAD的对象模型,和用VBA调用CAD的对象模型是一样的
也就是利用微软的COM模型
Post time 2009-4-5 12:11:02 | Show all posts
看起来好复杂啊····多研究哈
 Author| Post time 2009-4-9 22:27:16 | Show all posts
加载后在CAD里输入命令"lisp"就可以打开了,用这个工具可以很容易的得到LISP操作CAD对象模型的代码
Post time 2009-4-15 23:28:05 | Show all posts
谢谢你的教程,值得一看。。。
Post time 2009-4-19 19:37:19 | Show all posts
楼主CAD2008不能打开,出错
 Author| Post time 2009-4-26 19:18:58 | Show all posts
我的怎么可以,2009也没问题呀
Post time 2009-5-28 10:01:41 | Show all posts
很好的一个工具
Post time 2009-6-21 00:51:58 | Show all posts
为啥我加载后运行lisp出现的对话框左侧双击后没有反应呢,都是空白啊,到底怎么用?
12Next
Return to list New
You have to log in before you can reply Login | 注册register

Points Rules

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

Quick Reply To Top Return to the list