找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 38851|回复: 265

[每日一码] 参照LM:ACDOC把其它的都写了

 火... [复制链接]
发表于 2013-10-27 15:39:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Free-Lancer 于 2014-10-27 08:43 编辑

讨论帖
http://bbs.xdcad.net/thread-669945-1-1.html

app.fas 定义函数

常量
*INFINITY*
_2PI
_3PI
_PI2
_PI4


简化函数
dump
e2o
fy:creat
fy:handle
fy:id
fy:id32
fy:idstr
fy:vapply
fy:vcatche
fy:vget
fy:vput
invoke
invokem
o2e


程序结构
fy:error
fy:begin
fy:end
fy:setv
fy:unsetv


集合定义
fy:acapp
fy:docs
fy:accmcolor
fy:layerstatemanager
fy:securityparams
fy:menugroups
fy:menubar
fy:preferences

当前文档集合
fy:acdoc
fy:acms
fy:acps
fy:acspace
fy:acblocks
fy:acdicts
fy:acdimstyles
fy:acgroups
fy:aclayers
fy:aclayouts
fy:acltypes
fy:acplotconfigs
fy:acpreferences
fy:acregapps
fy:acssets
fy:actextstyles
fy:acucss
fy:acviews
fy:acviewports
fy:acutil


ObjectDBX
fy:odbx

选择集
fy:clearcset
fy:cset
fy:cset->objs
fy:pickss
fy:ventsel
fy:entself
fy:getptss


Undo
fy:startundo
fy:endundo


数据转换
list->variantarray
lisp-value


ObjectID 和 Handle
fy:id2obj
fy:handle2obj

属性获取和修改
fy:get
fy:put


属性刷
fy:mat

字体定义
fy:setfont

窗口缩放
fy:zoomw
fy:zoomp


fy:pixeltodrawing
fy:screenbox
fy:isptoutscreen


  1. (defun LM:acdoc    nil
  2.   (eval    (list 'defun
  3.           'LM:acdoc
  4.           'nil
  5.           (vla-get-activedocument (vlax-get-acad-object))
  6.     )
  7.   )
  8.   (LM:acdoc)
  9. )

游客,如果您要查看本帖隐藏内容请回复


















func.pdf

532.93 KB, 下载次数: 456

app141027.rar

9.84 KB, 下载次数: 416

评分

参与人数 3D豆 +15 收起 理由
WhoCanSay + 5 很给力!经验;技术要点;资料分享奖!
QiaoCheng + 5 技术引导讨论和指点奖!
xshrimp + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

本帖被以下淘专辑推荐:

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

已领礼包: 188个

财富等级: 日进斗金

发表于 2013-10-27 15:41:23 | 显示全部楼层
le mac 的作品?

点评

跟大师学习,写程序的时候要经常一层层的翻ActiveX帮助,干脆把最上层的都写出来,只需要查后面的 Methods 和 Properties,也省码些代码  详情 回复 发表于 2013-10-27 16:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-27 16:38:10 | 显示全部楼层

跟大师学习,写程序的时候要经常一层层的翻ActiveX帮助,干脆把最上层的都写出来,只需要查后面的 Methods 和 Properties,也省码些代码

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

使用道具 举报

已领礼包: 2963个

财富等级: 家财万贯

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

使用道具 举报

已领礼包: 207个

财富等级: 日进斗金

发表于 2013-10-27 20:00:51 | 显示全部楼层
本帖最后由 xshrimp 于 2013-10-27 20:05 编辑

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

使用道具 举报

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

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

使用道具 举报

 楼主| 发表于 2013-10-27 21:23:47 | 显示全部楼层
一个图层锁定解锁例子
  1. (defun c:tt (/ ll)
  2.   (fy:clearcset)
  3.   (fy:startundo)
  4.   (princ "\n空选全部解锁....")
  5.   (if (ssget)
  6.     (progn
  7.       (vlax-for obj (fy:cset)
  8.        (if (not (vl-position (vla-get-layer obj) ll))
  9.          (setq ll (cons (vla-get-layer obj) ll))
  10.        )
  11.       )
  12.       (mapcar '(lambda (x)
  13.          (vla-put-lock (vla-item (fy:aclayers) x) :vlax-true)
  14.            )
  15.           ll
  16.       )
  17.     )
  18.     (vlax-for obj (fy:aclayers)
  19.       (vla-put-lock obj :vlax-false)
  20.     )
  21.   )
  22.   (fy:endundo)
  23.   (princ)
  24. )


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

使用道具 举报

已领礼包: 3727个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-10-28 07:48:32 | 显示全部楼层
怎么现在都喜欢讨回复了?

点评

长老,来了就打声招呼吗,其实更喜欢用 setpropertyvalue getpropertyvalue 了,这些偶尔用用  详情 回复 发表于 2013-10-28 08:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

 楼主| 发表于 2013-10-28 08:03:45 来自手机 | 显示全部楼层
ll_j 发表于 2013-10-28 07:48
怎么现在都喜欢讨回复了?


长老,来了就打声招呼吗,其实更喜欢用 setpropertyvalue getpropertyvalue 了,这些偶尔用用:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-10-28 09:14:18 | 显示全部楼层
Free-Lancer 发表于 2013-10-28 08:03
长老,来了就打声招呼吗,其实更喜欢用 setpropertyvalue getpropertyvalue 了,这些偶尔用用

说实在的,到现在也没有参透LM大师的真正用意,不会VLisp,也就不敢乱说,总觉得是不是有什么玄机,否则不管从书写还是记忆,这样的格式都不能算方便。
正常写就是setq一句话的事情,这样的格式倒是多了很多累赘,而且还占用了一个函数名空间。
LM大师有一个好处,在程序中不使用本程序未定义的用户函数,这种函数在每个使用到的程序中都会复制一遍,一行是复制,一段也是复制,大概也就习惯了。^_^

点评

我理解这样可以减少通讯时间,没用一次vla-get可能就有一次open,这个比喻不知是否恰当,COM就像去房间取东西,这样写不用每次推门,直接进去,通常写法要每次推门  详情 回复 发表于 2013-10-28 17:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 09:51 , Processed in 0.433090 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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