明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 随梦而飞

悬赏缩放LISP源码

  [复制链接]
发表于 2012-8-3 22:17:11 | 显示全部楼层
7#不错啊                              
发表于 2012-8-4 00:15:06 | 显示全部楼层
x_s_s_1 哥能不能将指定图层名改成选择识别那会通用了,。。。
发表于 2012-8-4 00:30:37 | 显示全部楼层
本帖最后由 xyp1964 于 2012-8-4 00:46 编辑

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

本帖子中包含更多资源

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

x

点评

十分强大,非常好  发表于 2012-8-4 10:18

评分

参与人数 1明经币 +1 收起 理由
随梦而飞 + 1 很给力!

查看全部评分

发表于 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不是原位大样图


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






本帖子中包含更多资源

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

x
发表于 2012-8-4 07:45:23 | 显示全部楼层
x_s_s_1 发表于 2012-8-3 18:41
严正声明!!子函数均来自明经,非本人原创,尺寸的比例由于不知道个人习惯没有处理

不知道什么原因,在几台电脑上试了,均不成功。x_s_s_1
发表于 2012-8-4 08:08:08 | 显示全部楼层
x_s_s_1 发表于 2012-8-3 21:30
看来还要加一句啊,这个东西本来就是copy别人改的,本人从来不改别人函数名及变量名!!我也没说自己编 ...

提示; 错误: 参数类型错误: lselsetp nil,不能使用,请完善。
发表于 2012-8-4 08:49:21 | 显示全部楼层
本帖最后由 x_s_s_1 于 2012-8-4 08:50 编辑
xiaodao520 发表于 2012-8-4 07:45
不知道什么原因,在几台电脑上试了,均不成功。x_s_s_1


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

  1. (vl-load-com)
  2. ;;;lst_ssn函数(lst_ssn ss)
  3. ;;;ss参数:选折集
  4. ;;;返回图元名表
  5. (defun lst_ssn (ss / n lst)
  6.   (repeat (setq N (sslength ss))
  7.     (setq LST (cons (ssname SS (setq N (1- N))) LST))
  8.   ) ;_ 结束repeat
  9. ) ;_ 结束defun
  10. ;;;计算曲线交点
  11. (defun Curveinters (en1 en2 / pl pts)
  12.   (setq pl  (vlax-invoke (vlax-ename->vla-object en2) 'IntersectWith (vlax-ename->vla-object en1) acExtendNone))
  13.   (while pl
  14.     (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
  15.    pl (cdr (cdr (cdr pl)))
  16.    )
  17.     )
  18. pts
  19.   )
  20. (defun zsf (/ ss_all ss_dot ss_sc ss_pts pt ssets scal x objss )
  21.   (setvar "cmdecho" 0)
  22.   (prompt "\n请选择需要进行缩放的物体:")   
  23.   (setq ss_all (ssget));此处可根据个人习惯增加图层(ssget  '((8 . "colu,dim,sbar,dote,axis")))
  24.   (setq ss_dot (ssget "p" '((0 . "*line") (8 . "轴线__点划线"))));此处图层根据个人习惯改
  25.   (command "._Select" ss_all "remove" ss_dot "")
  26.   (setq ss_sc (ssget "p"))
  27.   (setq ss_pts (lst_ssn ss_dot))
  28.   (setq pt (car(Curveinters (car ss_pts) (cadr ss_pts))))
  29.   (setq ssets (lst_ssn ss_sc))
  30.   (if (setq scal (getreal "\n比例因子<0.25>:"))
  31.     t
  32.     (setq scal 0.25))
  33.   (foreach x ssets  
  34.     (setq objss (vlax-ename->vla-object x))  
  35.     (vla-scaleentity objss (vlax-3D-point pt) scal)
  36.   )  
  37. )
  38. (defun c:scc ()  
  39.   (zsf)  
  40.   (princ)  
  41. )

发表于 2012-8-4 10:07:51 | 显示全部楼层
x_s_s_1 发表于 2012-8-4 08:49
请注意图层,要选中轴线图层中的图元才行,没时间改版,下面是针对测试图的

建议改改,使其具备通用性。标注大小缩放,轴线图层可以任意选择。
发表于 2012-8-4 10:29:04 | 显示全部楼层
lpl 发表于 2012-8-4 10:07
建议改改,使其具备通用性。标注大小缩放,轴线图层可以任意选择。

增加了通用性就增加了几个变量,几个回车,个人可根据自己的喜好去改,个人用的东西,考虑那么多通用干什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-1 18:00 , Processed in 0.260891 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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