- 积分
- 13633
- 明经币
- 个
- 注册时间
- 2005-5-7
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2012-8-3 18:41:29
|
显示全部楼层
本帖最后由 x_s_s_1 于 2012-8-3 21:31 编辑
严正声明!!子函数均来自明经,非本人原创,尺寸的比例由于不知道个人习惯没有处理  - (vl-load-com)
- ;;;lst_ssn函数(lst_ssn ss)
- ;;;ss参数:选折集
- ;;;返回图元名表
- (defun lst_ssn (ss / n lst)
- (repeat (setq N (sslength ss))
- (setq LST (cons (ssname SS (setq N (1- N))) LST))
- ) ;_ 结束repeat
- ) ;_ 结束defun
- ;;;计算曲线交点
- (defun Curveinters (en1 en2 / pl pts)
- (setq pl (vlax-invoke (vlax-ename->vla-object en2) 'IntersectWith (vlax-ename->vla-object en1) acExtendNone))
- (while pl
- (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
- pl (cdr (cdr (cdr pl)))
- )
- )
- pts
- )
- (defun zsf (/ ss_all ss_dot ss_sc ss_pts pt ssets scal x objss )
- (setvar "cmdecho" 0)
- (prompt "\n请选择需要进行缩放的物体:")
- (setq ss_all (ssget));此处可根据个人习惯增加图层(ssget '((8 . "colu,dim,sbar,dote,axis")))
- (setq ss_dot (ssget "p" '((0 . "*line") (8 . "dote,axis"))));此处图层根据个人习惯改
- (command "._Select" ss_all "remove" ss_dot "")
- (setq ss_sc (ssget "p"))
- (setq ss_pts (lst_ssn ss_dot))
- (setq pt (car(Curveinters (car ss_pts) (cadr ss_pts))))
- (setq ssets (lst_ssn ss_sc))
- (setq scal (getreal "\n比例因子:"))
- (foreach x ssets
- (setq objss (vlax-ename->vla-object x))
- (vla-scaleentity objss (vlax-3D-point pt) scal)
- )
- )
- (defun c:scc ()
- (zsf)
- (princ)
- )
|
评分
-
查看全部评分
|