找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 11660|回复: 30

[原创] 编译了一个Vlisp常用函数库文件(141027)

[复制链接]
发表于 2013-11-24 12:00:32 | 显示全部楼层 |阅读模式

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

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

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

部分源码参见,新增加了几个简单的,在论坛都可以找到源码

http://bbs.xdcad.net/forum.php?mod=viewthread&tid=671318

app.fas 函数说明

常量

(setq *INFINITY* 1.7e308 ;_ largest double
      _pi2         (/ pi 2)
      _pi4         (/ pi 4)
      _2pi         (* pi 2)
      _3pi         (* 1.5 pi)
)

*FyGlobleSym* 全局符号,变量表或者字串表,用于 fy:end 清空变量
*sysvars*     全局符号,保存 fy:setv 设置系统变量的原始值

函数简化
(setq invoke         vlax-invoke
      invokem         vlax-invoke-method
      dump         vlax-dump-object
      e2o         vlax-ename->vla-object
      o2e         vlax-vla-object->ename
      fy:handle         vla-get-handle
      fy:Id         vla-get-objectid
      fy:id32         vla-get-objectid32
      fy:idstr         vla-getobjectidstring
      fy:vget         vlax-get-property
      fy:vput         vlax-put-property
      fy:vapply         vl-catch-all-apply
      fy:vcatche vl-catch-all-error-p
      fy:creat         vlax-get-or-create-object
)

ActivX 基础类

1 (fy:acapp)                 vlax-get-acad-object
2 (fy:docs)                 (vla-get-documents (fy:acapp))
3 (fy:accmcolor)         AutoCAD.AcCmColor.XX
4 (fy:LayerstateManager)AutoCAD.AcadLayerStateManager.XX
5 (fy:SecurityParams)         AutoCAD.SecurityParams.XX
6 (fy:MenuGroups)        MenuGroups
7 (fy:MenuBar)                MenuBar
8 (fy:Preferences)        Preferences

ActiveDocument

1  (fy:acdoc)                  ActiveDocument
2  (fy:acMs)                  ModelSpace
3  (fy:acPs)                 PaperSpace
   (fy:acspace)         ModelSpace or activepaperspace
4  (fy:acBlocks)         Blocks
5  (fy:acDicts)          Dictionaries
6  (fy:acDimstyles)         Dimstyles
7  (fy:acGroups)          Groups
8  (fy:acLayers)        Layers
9  (fy:aclayouts)        Layouts
10 (fy:acLtypes)        Linetypes
11 (fy:acPlotconfigs)        PlotConfigurations
12 (fy:acPreferences)        Preferences
13 (fy:acRegapps)        RegisteredApplications
14 (fy:acSSets)                Selectionsets
15 (fy:acSpace)                ModelSpace or PaperSpace
16 (fy:acTextstyles)        Textstyles
17 (fy:acUcss)                UserCoordinateSystems
18 (fy:acViews)                Views
19 (fy:acViewports)     Viewports
19 (fy:acUtil)                Utility

程序结构

1 (fy:error)
2 (fy:begin)
3 (fy:end)
4 (fy:startundo)
5 (fy:EndUndo)

系统变量

1 (fy:setv name value)        (fy:setv 变量名 值)
2 (fy:unsetv)


ObjectDBX

1 (fy:ODBX docSym filename)
  docSym --- 输出变量,doc
  filename -- 文件名


选集处理

1 (fy:clearcset)
2 (fy:cset)            ActiveSelectionsets
3 (fy:pickss)          PickfirstSelectionSet -> list of object
3 (fy:cset->objs)      ActiveSelectionsets -> list of object
4 (fy:ventsel msg objSym ptSym)
   msg ---- 提示字串
   objSym - Object变量符合
   ptSym  - 拾取点变量符号
5 (fy:entselF msg filter) 含过滤器的单选
6 (fy:getptss pt filter) 点靶框选择,返回 object list


变体处理

1 (list->vbArray lst varType) Lisp 表转 Array
1 (list->VariantArray lst varType)
   Lisp数据转换为 Variant
   vlax-vbInteger vlax-vbDouble vlax-vbString vlax-vbVariant
2 (lisp-value var)

实体转换
1 (fy:id2obj  id) ObjectIdToObject
2 (fy:handle2obj handle) HandleToObject

属性获取和修改

1 (fy:get obj lst) list of properties or property name
2 (fy:put obj lst) 批量设置属性

属性刷
1 (fy:mat source target lst)
   source --- 源实体
   target --- 目标实体或实体表
   lst    --- 特性列表

字体设置
1 (fy:setfont)   gbcbig,bgenor _fy_dimfnt

窗口缩放
1 (fy:zoomw p1 p2)       zoom w
2 (fy:zoomp)             zoom p
3 (fy:pixeltodrawing)    像素转图形单位
4 (fy:screenbox)         屏幕四角坐标
5 (fy:isPtOutScreen pts) 点集是否有在屏幕外点


简单应用, 数字求和
  1. (defun c:tt (/ num p)
  2.   (fy:begin) ;_ *error* undo clearcset
  3.   (fy:setv "textsize" 5.0) ;_save sysvar and setvar
  4.   (if (ssget '((0 . "text")))
  5.     (progn
  6.       (setq num
  7.              (apply '+
  8.                     (mapcar '(lambda (x) (distof (vla-get-textstring x)))
  9.                             (fy:cset->objs);_ActiveSelectionset
  10.                     )
  11.              )
  12.       )
  13.       (if (setq p (getpoint "\nPosition: "))
  14.         (vla-addtext
  15.           (fy:acms);_(vla-get-modelspace
  16.           (rtos num 2 3)
  17.           (vlax-3d-point p)
  18.           (getvar "textsize")
  19.         )
  20.       )
  21.     )
  22.   )
  23.   (fy:end);_endundo reset *error*
  24.   (princ)
  25. )


app141027.rar

9.84 KB, 下载次数: 408, 下载积分: D豆 -1 , 活跃度 1

lib20141027.rar

56.13 KB, 下载次数: 396, 下载积分: D豆 -1 , 活跃度 1

加了一些组合函数

评分

参与人数 2D豆 +15 贡献 +1 收起 理由
kqqt6236 + 5 很给力!经验;技术要点;资料分享奖!
xshrimp + 10 + 1 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

已领礼包: 85个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-1-7 15:32:48 | 显示全部楼层
就像G版说的:
编译后的程序如果吧不提供详细的函数调用说明,别人是无法使用的!这些都是公开的源码, 何不如直接把打包的源码发上来,方便大家学习使用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-7 15:36:23 来自手机 | 显示全部楼层
lucas3 发表于 2014-1-7 15:32
就像G版说的:
编译后的程序如果吧不提供详细的函数调用说明,别人是无法使用的!这些都是公开的源码, 何 ...

你给补充上吧

点评

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-1-7 15:40:05 | 显示全部楼层

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-20 10:24:13 | 显示全部楼层
invoke 支持多参数更好
(vlax-invoke-method (vlax-ename->vla-object (car (entsel))) 'GetBoundingBox 'bp 'up)
这个用 vlax-invoke 就不行了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-2-24 12:03:20 | 显示全部楼层
哦,厉害,就是函数太少!~

点评

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

使用道具 举报

 楼主| 发表于 2014-2-25 17:00:29 | 显示全部楼层
本帖最后由 Free-Lancer 于 2014-10-3 22:37 编辑
77077 发表于 2014-2-24 12:03
哦,厉害,就是函数太少!~

另一个多些函数,均采集于论坛,包括本人发布程序中用到的所有函数(eq. XD:: .....)
见 一楼 libl.vlx

点评

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-2-25 19:19:05 | 显示全部楼层
Free-Lancer 发表于 2014-2-25 17:00
另一个多些函数,均采集于论坛,包括本人发布程序中用到的所有函数(eq. XD:: .....)

附件为编译版

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 20:37:03 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-2-26 08:41 编辑
lucas3 发表于 2014-2-25 19:19
望大师高风亮节,开开源吧!

免费能用还不够吗?
多在论坛看看都可以搜集到的

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

使用道具 举报

已领礼包: 2226个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2014-7-8 21:26:46 | 显示全部楼层
这个非常好,谢谢分享,希望把源码也收集上来分享...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 12:53 , Processed in 0.458877 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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