找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1031|回复: 10

[LISP程序]:试贴-一个小程序(关于修剪)

[复制链接]
发表于 2003-12-3 12:03:10 | 显示全部楼层 |阅读模式

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

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

×
一个小程序,有用的话可以试试,修剪小东西时有用~
(defun c:tc(/ p1 p2 e)
(setq p1 (getpoint))
(setq p2 (getcorner p1))
(command "zoom" "w" p1 p2)
(command "trim" "c" p1 p2 "")
(while (setq e (entsel))
(command e)
)
(command)
(command "zoom" "p")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-12-3 12:29:19 | 显示全部楼层
鼓勵鼓勵,從基礎開始
(setq p1 (getpoint "\nFirst corner"))
...
比較明確
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-12-3 21:42:28 | 显示全部楼层
这是给同学介绍lisp时写的小程序,它是自带放大(zoom)的裁剪(trim)命令,裁剪完后自动恢复原来的视窗。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 23:27:21 | 显示全部楼层
关于交点打断的思路各位大侠是如何考虑的?
偶想了一下
可以这样:
1.框选范围内,求实体交点, >>成表 intlist
2.交点处打断所有实体
3.判断新生成的物体.如果长度小于某范围数值,删除
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-4 08:17:27 | 显示全部楼层
最初由 陌生人 发布
[B]关于交点打断的思路各位大侠是如何考虑的?
偶想了一下
可以这样:
1.框选范围内,求实体交点, >>成表 intlist
2.交点处打断所有实体
3.判断新生成的物体.如果长度小于某范围数值,删除 [/B]


想法不错,不知道实现方便否?还有就是图素很多时,执行的效率如何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-4 21:19:06 | 显示全部楼层
讓我來拋磚引玉吧,之前貼了一個vba的,蒙版主不棄送了10個愛心幣,不好意思再拿出來騙錢
貼一個lisp的看看如何

  1. (defun c:llt()

  2.     (setvar "cmdecho" 0)
  3.     (setq selnum (getvar "osmode"))
  4.     (setvar "osmode" 0)
  5.     (setq cly (getvar "clayer"))
  6.     (setq tb (tblsearch "LAYER" "ZTEMP"))
  7.     (if (= tb nil)(command "layer" "m" "ZTEMP" "c" 7 "ZTEMP" ""))
  8.     (setq tb (tblsearch "LAYER" "ZZTEMP"))
  9.     (if (= tb nil)(command "layer" "m" "ZZTEMP" "c" 7 "ZZTEMP" ""))


  10.     (setq p1 (getpoint "\nFirst corner:"))
  11.     (setq p2 (getcorner p1 "\nSecond corner:"))

  12.     (setq ss (ssget "c" p1 p2 '((0 . "LINE"))))
  13.     (setq ename (ssname ss 0))
  14.     (setq endata (entget ename))
  15.     (setq oldlay (cdr (assoc 8 endata)))
  16.     (command "chprop" ss "" "la" "ZTEMP" "")

  17. (if (= (sslength ss) 4)
  18.   (progn   
  19.     (setq i 0)
  20.     (repeat (sslength ss)

  21.       (setq ename (ssname ss i))
  22.       (command "chprop" ename "" "la" "ZZTEMP" "")   
  23.       (setq endata (entget ename))
  24.       (setq pt1 (cdr (assoc 10 endata)))
  25.       (setq pt2 (cdr (assoc 11 endata)))
  26.       
  27.       (setq ppf (list pt1 pt2))
  28.       (setq ssk (ssget "F" ppf))
  29.       (setq ssp (ssget "P" '((8 . "ZTEMP"))))
  30. ;(print (sslength SSP))
  31.         (if (= (sslength ssp) 2)
  32.             (progn      
  33.                  (setq enamel (ssname ssp 0))
  34.                  (setq endata (entget enamel))
  35.                  (setq ptr11 (cdr (assoc 10 endata)))
  36.                  (setq ptr12 (cdr (assoc 11 endata)))
  37.                  (setq ptrim1 (inters pt1 pt2 ptr11 ptr12 nil))
  38.                  (setq enamel (ssname ssp 1))
  39.                  (setq endata (entget enamel))
  40.                  (setq ptr21 (cdr (assoc 10 endata)))
  41.                  (setq ptr22 (cdr (assoc 11 endata)))
  42.                  (setq ptrim2 (inters pt1 pt2 ptr21 ptr22 nil))
  43.            (command "break" ename ptrim1 ptrim2)
  44.            (setq ssz (ssget "X" '((8 . "ZZTEMP"))))
  45.            (command "chprop" ssz "" "la" "ZTEMP" "")
  46.              )   
  47.         )   

  48.       (setq i (+ i 1))
  49.       
  50.     )
  51.       
  52.   )  
  53. )
  54.     (setq ssz (ssget "X" '((8 . "ZTEMP"))))
  55.     (command "chprop" ssz "" "la" oldlay "")
  56.     (setvar "osmode" selnum)
  57.     (setvar "clayer" cly)
  58. (prin1)
  59. )
  60. (prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-5 14:37:32 | 显示全部楼层
说实话挺好用的可是就是不能控制如何裁切而且只用于line线,能否改进一下。不过还是要对您的爱心说句谢谢,建议斑竹给你加分。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-5 17:09:22 | 显示全部楼层
1.以上程序適用4條線"井"字裁切,有空再寫在同一個程序下可適用不同的情況,依框選的條件自動判斷處理的方式
2.zhynt版主示範的應該是不同的程序做不同的結果
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 19:18 , Processed in 0.188122 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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