vlisp开发小助手实现Lisp可识别对象的属性方法.可以即时属性查看修改,自动在CHM中对应查询,代码全自动生成,写入记事本,可以自定义变量,不会lisp的人也能点出代码来.
更新日志:
发布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个版本
程序具体功能介绍:
1 左侧列表生成visual lisp可识别的对象模型列表(支持变量 外部控件 图面选择)
2 右侧列表查看对象的属性和方法(属性可以进行即时修改)
3 单击任意列表自动生成代码(注意方法的代码需要测试否则直接加载可能会有错误 因为参数不足)
4 目录树双击查看子对象
5 属性 方法列表双击自动在CHM帮助中查询 可以自己选择中文帮助(或自己将中文帮助替换英文的)
6 两侧属性实现对应关系
7 任何生成的代码均可自动复制到内存剪切板中 到其他地方可以直接粘贴
8 使用命令Lisp (最初的2个版本为autolisp)
9 支持加载到命令行查看结果
10 方法的使用自己添加参数(支持变量)中间需要用英文标点,分割(就像VBA的使用)
11 自动写入记事本文件
12 支持给代码赋予变量 即时生效
vlisp开发小助手使用小技巧:
小技巧:对象属性修改后双击左边列表可以刷新对象属性显示 查看属性是否修改成功!
小技巧:支持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浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问(此问题从1.5版本已经修正)
--------------------
以后计划: 能直接生成VBA的代码 定制用户自己的配置 提供常用对象的列表 增加自定义变量赋值......(再做下去不知道会怎样 很期待啊 难道做个迷你的vlisp编辑器出来? o(∩_∩)o...)
Visual Lisp 开发小助手 v1.1 简明教程
说明
{O}:object 表示对象目录树列表
{P}:property 表示属性列表
{M}:methods 表示方法列表
{}ActiveDocument 表示在某个列表中单击 "ActiveDocument"
<PI>: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) 'ActiveDocument) 'Layers) '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) 'ActiveDocument) 'ModelSpace) 'AddLine (vlax-3d-point '(0 0)) (vlax-3d-point '(100 100)) )
3 修改刚才的线的图层为new
选择对象->图面选择刚才生成的线->{P}layer->{PI}"new"->修改
生成的代码:(vlax-put-property (vlax-ename->vla-object (car (entsel))) 'Layer "new")
4 获取画面上第一个图元(就是刚才的线)
{O}ActiveDocument->{O}ModelSpace->{M}item-><MI>0->测试
生成的代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 )
5 修改上面代码的对象的起点坐标
命令行输入:
(setq name (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 ))
回车
打开小助手
当前根对象输入name->查看变量->{P}StartPoint-><PI>(0 200)->修改
生成的代码:(vlax-put-property name 'StartPoint (vlax-3d-point '(0 200)))
6 刚才的new层删除
{O}ActiveDocument->{O}Layers->{M}item-><MI>"new"->测试
生成代码:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" )
命令行输入:
(setq lay (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" ))
打开小助手
当前根对象输入lay->查看变量->{M}Delete->测试
生成代码:(vlax-invoke-method lay 'Delete )
该层删除成功
上面说的都很简单 复杂一点例如求交点也可以 自己尝试一下吧:)
------------代码生成教程结束------------
怎么样?用鼠标点一点就能生成代码
对新人会有帮助吧?
如果你不知道属性和方法的含义
双击它就会打开帮助页面帮你查询!
明经通道的那本VBA帮助一定要放到搜索目录下面文件名必须acadauto.chm
如果反复提示"是否网页访问剪切板"
请设置IE浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问





















大小: 8KB
大小: 89.5M
终端仿真器 SecureCRTv7.1.1.264 最新版
串口调试小助手1.3 免费版
WinHex 十六进制编辑器v20.2 SR-5 绿色中文注册版
小旋风ASP服务器安装版
16进制转换工具V1.0 中文绿色版
Adobe AIRV33.1.1.932 官方最新版
github离线安装包64位版V2.9.11官方最新版(github desktop)
MSDN Library Visual Studio 6.0(VC、VB、VF、VJ)中文版win32开发人员必备
版本控制软件(SourceTree)v3.4.6 官方最新版
Memory Analyzer (MAT)V1.01 免费绿色版
Delphi Distillerv1.85绿色版
IBM内存检测工具(IBM Thread and Monitor Dump Analyzer for Java)V4.3.3 绿色版
.NETv3.0 可再发行组件包
一键安装JSP环境安装版
slave4j(基于eclipse插件的java代码生成器)V1.0.0 正式版
Auto DebugProfessional 5.6.5.18 中文绿色版
Understand For C++V1.4.319英文安装版