;;15.6 [功能] 词典集合
(defun MJ:GetDictionaries () (vlax-Get-Property *DOC* 'Dictionaries))
;;15.7 [功能] 块集合(不是我们平时绘图时所说的块)
(defun MJ:GetBlocks () (vlax-Get-Property *DOC* 'Blocks))
;;15.8 [功能] 打印配置集合
(defun MJ:GetPlotConfigs ()(vlax-Get-Property *DOC* 'PlotConfigurations))
;;15.9 [功能] 视图集合
(defun MJ:GetViews () (vlax-Get-Property *DOC* 'Views))
;;15.10 [功能] 视口集合
(defun MJ:GetViewports () (vlax-Get-Property *DOC* 'Viewports))
;;15.11 [功能] 组集合
(defun MJ:GetGroups () (vlax-Get-Property *DOC* 'Groups))
;;15.12 [功能] 注册程序集合
(defun MJ:GetRegApps () (vlax-Get-Property *DOC* 'RegisteredApplications))
;;16 [功能] 返回集合成员名称列表
;;示例 (MJ:ListCollectionMemberNames (MJ:GetLayers))返回:图层列表(\中心线\文字\
(defun MJ:ListCollectionMemberNames (collection / out)
(vlax-for each collection
(setq out (cons (MJ:Name each) out)) )
(reverse out) )
;;16.1 [功能] 返回线型集合成员名称列表(常量*LTS*)
(defun MJ:ListLtypes ()
(MJ:ListCollectionMemberNames (vlax-Get-Property *DOC* 'Linetypes)) )
;;16.2 [功能] 图层列表(常量*LAYS*)
;;示例(\中心线\文字\
(defun MJ:ListLayers ()
(MJ:ListCollectionMemberNames (vlax-Get-Property *DOC* 'Layers)) )
;;16.3 [功能] 返回文字样式集合成员名称列表(常量*STS*)
(defun MJ:ListTextStyles ()
(MJ:ListCollectionMemberNames (vlax-Get-Property *DOC* 'TextStyles)) )
;;16.4 [功能] 返回尺寸样式集合成员名称列表
(defun MJ:ListDimStyles ()
(MJ:ListCollectionMemberNames *DIMS*) )
;;16.5 [功能] 返回布局集合成员名称列表
(defun MJ:ListLayouts ()
(MJ:ListCollectionMemberNames *LOUTS*) )
;;16.6 [功能] 返回词典集合成员名称列表
(defun MJ:ListDictionaries ()
(MJ:ListCollectionMemberNames *DICS*) )
;;16.7 [功能] 返回块集合成员名称列表
(defun MJ:ListBlocks ()
(MJ:ListCollectionMemberNames *BLKS*) )
;;16.8 [功能] 返回打印配置集合成员名称列表
(defun MJ:ListPlotConfigs ()
(MJ:ListCollectionMemberNames (MJ:GetPlotConfigs)) )
;;16.9 [功能] 返回视图集合成员名称列表
(defun MJ:ListViews ()
(MJ:ListCollectionMemberNames (MJ:GetViews)) )
;;16.10 [功能] 返回视口集合成员名称列表(同常量*VPS*)
(defun MJ:ListViewPorts ()
(MJ:ListCollectionMemberNames (MJ:GetViewports)) )
;;16.11 [功能] 返回组集合成员名称列表
(defun MJ:ListGroups ()
(MJ:ListCollectionMemberNames (MJ:GetGroups))
)
;;16.12 [功能] 返回注册程序集合成员名称列表
(defun MJ:ListRegApps ()
(MJ:ListCollectionMemberNames (MJ:GetRegApps)) )
;;17 [功能] 点表排序(141 143.1的更差)
;;*****************************************************************************通用点表排序
;;ssPts: 1 选择集,返回图元列表
;; 2 点表(1到n维 1维时key只能是x或X),返回点表
;; 3 图元列表,返回图元列表
;;Key: \任意组合,例如\在前表示y坐标优先,小y表示从小到大(注:二维点时,不能有z)
;;FUZZ: 允许误差
;;注:点表可以1到n维混合,Key长度不大于点的最小维数。
;;示例1 (HH:ssPts:Sort (ssget) \0.5);返回(
;;示例2 (HH:ssPts:Sort (list '(2 3) '(3 5)) \返回((3 5) (2 3))
;;示例3 (HH:ssPts:Sort '(
;;本程序是在fsxm的扩展 自贡黄明儒 2013年9月9日
(defun HH:ssPts:Sort (ssPts KEY FUZZ / E EN FUN LST N SORTPTS SORTSS)
;;1 点列表排序
(defun sortpts (PTS FUN xyz FUZZ)
(vl-sort pts
'(lambda (a b)
(if (not (equal (xyz a) (xyz b) fuzz))
(fun (xyz a) (xyz b)) )
)
) )
;;2 排序
(defun sortpts1 (PTS KEY FUZZ)
(setq Key (vl-string->list Key))
(foreach xyz (reverse Key)
(cond ((< xyz 100)
(setq fun >)
(setq xyz (nth (- xyz 88) (list car cadr caddr)))
)
(T
(setq fun <)
(setq xyz (nth (- xyz 120) (list car cadr caddr)))
)
)
(setq Pts (sortpts Pts fun xyz fuzz))