找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5751|回复: 22

[原创]:VLisp开发小助手1.4(对象查看修改+代码自动生成)多语言

[复制链接]
发表于 2008-12-26 10:05:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
Visual Lisp 开发小助手 (对象查看修改器+代码自动生成器)   by nonsmall 20081226
发布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浏览器的工具-选项-安全-自定义级别-脚本-允许剪切板进行编程访问

--------------------
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2008-12-26 10:09:39 | 显示全部楼层
预览图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-26 10:11:10 | 显示全部楼层
繁体版
繁体BIG5
English
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-26 10:16:00 | 显示全部楼层
Excel获取
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-26 10:18:40 | 显示全部楼层
Visual Lisp 开发小助手  简明教程
说明
{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
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-26 11:39:48 | 显示全部楼层
猫大哥就出1.4了呀。强烈支持和感谢~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-26 13:26:34 | 显示全部楼层
非常感谢,好东西。
但是怎么下不了呢?总是提示服务器出错。能给我发一份吗?
teysgp@163.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-27 07:14:52 | 显示全部楼层
不错,受用了。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-27 11:21:55 | 显示全部楼层
怎么没人加分?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-27 12:15:25 | 显示全部楼层
最初由 雄啸 发布
[B]怎么没人加分? [/B]


我来加分。。。呵呵
加积分2分,黄金二十两
up
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-12-27 13:14:56 | 显示全部楼层
调用OFFSET出问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-27 20:19:12 | 显示全部楼层
好像很强啊!下来试试呢:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-28 15:13:48 | 显示全部楼层
比我现在用的强多了,下一个,谢谢楼主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-29 08:45:04 | 显示全部楼层
最初由 taner 发布
[B]调用OFFSET出问题 [/B]


(setq n (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 ))
(vlax-invoke-method n 'Offset 5 )

上面的可以 出问题应该是对话框未关闭时对entsel的调用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-3-31 10:16:52 | 显示全部楼层
为什么我下载不了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 05:28 , Processed in 0.493540 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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