明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 113415|回复: 357

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

    [复制链接]
发表于 2008-12-15 09:32:00 | 显示全部楼层 |阅读模式
本帖最后由 nonsmall 于 2013-4-24 17:51 编辑

感谢各位关注 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获得对象范围输入'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...)

---------------------
程序下载:

[Post=5]

v1.5 贺岁版

[/Post]

V1.4

简体

繁体1

繁体2

English

本站的VBA参考链接

http://www.mjtd.com/Soft/SoftShow.asp?SoftID=132

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3威望 +1 明经币 +2 金钱 +36 贡献 +5 激情 +5 收起 理由
lgttblue + 10
yhkk0317 + 6 非常不错的工具
mccad + 1 + 2 + 20 + 5 + 5 【精华】 此贴必红,先加精华

查看全部评分

本帖被以下淘专辑推荐:

发表于 2023-10-26 15:43:30 | 显示全部楼层
大哥你老实交代,你拿去破解了没 ?

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

真的会红,肯定会红,我必须把帖子人工置顶
发表于 2023-10-26 16:19:21 | 显示全部楼层
正规一点的图都是一张图一个文件,你这个办法针对这情况行不?
发表于 2019-11-25 16:12:39 | 显示全部楼层
zhaozwf 发表于 2008-12-16 22:01
太爽了,呵呵,支持

我是LISP小白
 楼主| 发表于 2008-12-15 09:33:00 | 显示全部楼层
本帖最后由 作者 于 2008-12-25 17:54:59 编辑

Visual Lisp 开发小助手 v1.1 简明教程
说明
{O}:object   表示对象目录树列表
{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) '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-><I>(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浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问

版本更新预留


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2008-12-15 10:01:00 | 显示全部楼层
支持一个。很用心的作品
发表于 2008-12-15 10:10:00 | 显示全部楼层
还有改进的空间,关注中。。。
发表于 2008-12-15 10:13:00 | 显示全部楼层
先顶一下!!
发表于 2008-12-15 10:36:00 | 显示全部楼层

哇撒   楼上几个把我挤门外去了  好东西   顶下

佳菲继前几次之后又来骗精华?     呵呵

多骗点 哈哈    

发表于 2008-12-15 11:34:00 | 显示全部楼层

这是个很有用地东西!实用

发表于 2008-12-15 12:37:00 | 显示全部楼层

很好,nonsmall辛苦了

发表于 2008-12-15 12:51:00 | 显示全部楼层
本帖最后由 作者 于 2008-12-15 12:52:07 编辑

再顶!!

发表于 2008-12-15 14:18:00 | 显示全部楼层
lidejun_55发表于2008-12-15 11:34:00这是个很有用地东西!实用

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

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

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 17:56 , Processed in 0.216329 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表