找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1134|回复: 10

[原创]:※简便的图形切割程序※

[复制链接]
发表于 2004-6-7 12:25:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
运行前检查是否安装et扩展
使用方法:
[php]
;;;|图形切割程序
;;;|制作:snsj 2004.6.7
(defun zzm(x y /)(cdr(assoc x(entget y))))
(defun c:qg (/ ent ss boxpt pt pt1 ptt ptt1 ppt os i ssn)
(princ "******|图形切割程序(用于2000+版本),制作:snsj,欢迎你光临小东CAD!!!(如程序异常,请安装ET扩展)|******")
  (setvar "cmdecho" 0)(load "extrim.lsp")
  (setq os(getvar "osmode"))(setvar "osmode" 0)
(setq ent(car(entsel"\n选择物体<圆形、矩形或者闭合的polyline线>:"))i 0)
  (setq boxpt(acet-ent-geomextents ent)
        pt(car boxpt)pt1(cadr boxpt)
        ptt(list(-(car pt)100)(-(cadr pt)100))
        ptt1(list(/(+(car pt)(car pt1))2)(/(+(cadr pt)(cadr pt1))2))
        )
(cond((=(zzm 0 ent)"CIRCLE")
(command "._polygon" "30" (zzm 10 ent) "c" (zzm 40 ent))
(setq ss(ssget "_cp"(acet-geom-vertex-list (entlast))))
(command ".erase" (entlast) "")
      )
     ((and(=(zzm 0 ent)"LWPOLYLINE")(vlax-curve-isClosed ent))
(setq ss(ssget "_cp"(acet-geom-vertex-list ent)))
      )(t(exit))
     )
  (repeat (sslength ss)
    (setq ssn(ssname ss i))
    (if(=(zzm 0 ssn)"LEADER")
      (if(not(ssmemb(zzm 340 ssn)ss))
        (ssadd(zzm 340 ssn)ss)
        )
      )(setq i(1+ i))
    )
  (setq ppt(acet-ss-drag-move ss ptt1 "\n点取移动到的位置:" nil))
  (if(/= ppt nil)
    (progn
(command ".copy" ss "" '(0 0) '(0 0))
(command ".move" ss "" ptt1 ppt)
  (etrim ent ptt)
  (command ".scale" ss "" ppt (getint"\n输入放大倍数:")))
    )
  (setvar "highlight" 1)(setvar "osmode" os)
  (princ)
  )

[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-7 22:53:02 | 显示全部楼层
我用楼主的代码做了个附件!
欢迎下载!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-11 09:21:06 | 显示全部楼层
怎么用啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-11 19:24:23 | 显示全部楼层
(command ".scale" ss "" ppt (getint"\n输入放大倍数:")))
最好修改为(command ".scale" ss "" ppt (getReal"\n输入放大倍数:")))
选择多义线的时候最好判断是不是凸多边形,否则出错,
如果做更大补充就改给里面每个块用xclip处理一下,否则块割不了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-4 01:53:12 | 显示全部楼层
好程序,能否自动把轴线两端的轴号一起接进来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-4 14:10:54 | 显示全部楼层
什么是ET扩展?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-4 18:32:59 | 显示全部楼层
ET扩展应该就是指 Express Tools
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-5 12:26:59 | 显示全部楼层
可是,这个我没有啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-8 21:33:26 | 显示全部楼层
高手,这是我找了很久类似天正图形裁减
要是事先不要画封闭线就更好,大多数用矩形裁减
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-10 11:28:11 | 显示全部楼层

矩形切割实体

(defun c:-9 (/ ) ; 相贯线切割
  (command "rectang" pause pause)
  (sta)
  (command "ucs" "p")
  (setq rec (entlast))
  (setq rec_ss (entget rec))
  (setq n 0)
  (setq ptss (list))
  (while (< n  (length rec_ss))
    (setq rec_n (nth n rec_ss))
    (if (= 10 (nth 0 rec_n))
      (setq ptss (cons (cdr rec_n) ptss)))
    (setq n (1+ n)))
  (setq st_ss (ssget "c" (nth 0 ptss) (nth 2 ptss)))
  (command "slice" st_ss "" (nth 0 ptss) (nth 1 ptss) "@0,0,1" (nth 2 ptss))
  (command "slice" st_ss "" (nth 1 ptss) (nth 2 ptss) "@0,0,1" (nth 0 ptss))
  (command "slice" st_ss "" (nth 2 ptss) (nth 3 ptss) "@0,0,1" (nth 0 ptss))
  (command "slice" st_ss "" (nth 3 ptss) (nth 0 ptss) "@0,0,1" (nth 2 ptss))
  (command "ERASE" rec "")
  (end)
  )
(defun sta();开始
    (command "undo" "be") ; 定义返回点
    (setvar "cmdecho" 0)  ; 关闭命令提示
    (setq osn (getvar "OSMODE"));记忆捕捉
    (setvar "OSMODE" 0)
    (if (= (getvar "ucsname") nil)
        (command "ucs" "s" "sl"); 记忆UCS
        (command "ucs" "s" "sl" "y")
     )
    (command "ucs" "w")
  )
(defun end();结束
  (command "ucs" "r" "sl"); 返回UCS
  (setvar "OSMODE" osn);恢复捕捉
  (command "undo" "e"); 定义返点
  (setvar "cmdecho" 1); 打开命令提示
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-10 12:39:56 | 显示全部楼层
具体裁减功能有什么优点,比如能裁减块?下过两个工具了.天正和清华现在都有这功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 19:01 , Processed in 0.182366 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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