qianzj 发表于 2012-8-3 22:17:11

7#不错啊                              

flytoday 发表于 2012-8-4 00:15:06

x_s_s_1 哥能不能将指定图层名改成选择识别那会通用了,。。。

xyp1964 发表于 2012-8-4 00:30:37

本帖最后由 xyp1964 于 2012-8-4 00:46 编辑

没有源码,只有演示就算了

xyp1964 发表于 2012-8-4 00:49:32

属于对垃圾图的处理,伪源码就不发了

随梦而飞 发表于 2012-8-4 01:17:03

本帖最后由 随梦而飞 于 2012-8-4 07:47 编辑

测试图一

1、我的邮箱1980006156qq.com
2、由于本人刚学LISP,请高手注明每行LISP语言的简要的说明性文字,方便我认真学一下,如有这个的教学更佳。
3、请提供联系方式在我的邮箱,以便悬赏到位,千万别不好意思,否则我会不安的。

4、轴线不缩放,缩放后标注尺寸数字不变。

5、源码适用CAD2006

6、支持批量选择

7、关于缩放比例,只要用标注量一下不是原位大样图,就知道了,如Z1,图中有原位大样图,还有Z1不是原位大样图


目的是将原位大样图缩成不是原位大样图






xiaodao520 发表于 2012-8-4 07:45:23

x_s_s_1 发表于 2012-8-3 18:41 static/image/common/back.gif
严正声明!!子函数均来自明经,非本人原创,尺寸的比例由于不知道个人习惯没有处理

不知道什么原因,在几台电脑上试了,均不成功。x_s_s_1

lpl 发表于 2012-8-4 08:08:08

x_s_s_1 发表于 2012-8-3 21:30 static/image/common/back.gif
看来还要加一句啊,这个东西本来就是copy别人改的,本人从来不改别人函数名及变量名!!我也没说自己编 ...

提示; 错误: 参数类型错误: lselsetp nil,不能使用,请完善。

x_s_s_1 发表于 2012-8-4 08:49:21

本帖最后由 x_s_s_1 于 2012-8-4 08:50 编辑

xiaodao520 发表于 2012-8-4 07:45 http://bbs.mjtd.com/static/image/common/back.gif
不知道什么原因,在几台电脑上试了,均不成功。x_s_s_1

请注意图层,要选中轴线图层中的图元才行,没时间改版,下面是针对测试图的

(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 . "轴线__点划线"))));此处图层根据个人习惯改
(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))
(if (setq scal (getreal "\n比例因子<0.25>:"))
    t
    (setq scal 0.25))
(foreach x ssets
    (setq objss (vlax-ename->vla-object x))
    (vla-scaleentity objss (vlax-3D-point pt) scal)
)
)
(defun c:scc ()
(zsf)
(princ)
)

lpl 发表于 2012-8-4 10:07:51

x_s_s_1 发表于 2012-8-4 08:49 static/image/common/back.gif
请注意图层,要选中轴线图层中的图元才行,没时间改版,下面是针对测试图的

建议改改,使其具备通用性。标注大小缩放,轴线图层可以任意选择。

x_s_s_1 发表于 2012-8-4 10:29:04

lpl 发表于 2012-8-4 10:07 static/image/common/back.gif
建议改改,使其具备通用性。标注大小缩放,轴线图层可以任意选择。

增加了通用性就增加了几个变量,几个回车,个人可根据自己的喜好去改,个人用的东西,考虑那么多通用干什么
页: 1 [2] 3 4
查看完整版本: 悬赏缩放LISP源码