马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 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) 点集是否有在屏幕外点
简单应用, 数字求和
 - (defun c:tt (/ num p)
- (fy:begin) ;_ *error* undo clearcset
- (fy:setv "textsize" 5.0) ;_save sysvar and setvar
- (if (ssget '((0 . "text")))
- (progn
- (setq num
- (apply '+
- (mapcar '(lambda (x) (distof (vla-get-textstring x)))
- (fy:cset->objs);_ActiveSelectionset
- )
- )
- )
- (if (setq p (getpoint "\nPosition: "))
- (vla-addtext
- (fy:acms);_(vla-get-modelspace
- (rtos num 2 3)
- (vlax-3d-point p)
- (getvar "textsize")
- )
- )
- )
- )
- (fy:end);_endundo reset *error*
- (princ)
- )
|