明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3784|回复: 10

求助,关于TRIM (command "trim" ent "" pt "&quo

[复制链接]
发表于 2003-12-2 10:26:00 | 显示全部楼层 |阅读模式
哪位高手帮帮我,在程序中我用到TRIM,如下
(command "trim" ent "" pt "")
PT是多义线上的端点坐标,因为多条线进行处理,不能直接选线,所以我选了多义线的端点,但这样就存在一个问题,当多义线很长,有拐弯的时候就截断不了
请大家帮我想想办法,谢谢
发表于 2003-12-2 10:32:00 | 显示全部楼层
應該沒有問題(我試過),
例如:
(setq sa (car (entsel)))
(setq a (cdr (assoc 10 (entget(car (entsel))))))
(command "trim" sa "" a "")
发表于 2003-12-2 10:36:00 | 显示全部楼层
不明白你的意思,给个图示意一下把。
关于TRIM命令最好使用双元表,即(对象名 . 坐标点),而不要仅使用对象或点,这样有很多不可确定性
 楼主| 发表于 2003-12-2 13:10:00 | 显示全部楼层
如上图
谢谢大家的帮助,是的用(对象名 . 坐标点)就可以TRIM了。谢谢
但还有一个问题,如我传的图片,我想两边的都截成中间的红色的线的样子
我用TRIM 如下
  (command "trim" ent01 ent02 "" ent1 p1s ent1 p1n "" )
   ent1   是要截的红色线  p1s  p1n 分别是该线的两个端点,这样执行有问题。
(command "trim" ent01 ent02 "" ent1 p1s  p1n "" )
  这样执行也有问题。
请帮忙,谢谢
 楼主| 发表于 2003-12-2 13:28:00 | 显示全部楼层
不好意思,刚才上传图片没传上去,图片在这,请指教
 楼主| 发表于 2003-12-2 13:32:00 | 显示全部楼层
如上图
谢谢大家的帮助,是的用(对象名 . 坐标点)就可以TRIM了。谢谢
但还有一个问题,如我传的图片,我想两边的都截成中间的红色的线的样子
我用TRIM 如下
  (command "trim" ent01 ent02 "" ent1 p1s ent1 p1n "" )
   ent1   是要截的红色线  p1s  p1n 分别是该线的两个端点,这样执行有问题。
(command "trim" ent01 ent02 "" ent1 p1s  p1n "" )
  这样执行也有问题。
请帮忙,谢谢
   

本帖子中包含更多资源

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

x
发表于 2003-12-2 13:41:00 | 显示全部楼层
把ent1E從(command "trim" ent01 ent02 "" ent1 p1s  p1n "" )去掉

(command "trim" ent01 ent02 ""  p1s  p1n "" )
发表于 2003-12-2 13:49:00 | 显示全部楼层
看下面的程序,最好自己能看懂。。。
剪切对象就是白线,被剪切对象就是红线,怎么选择没有关系,你可以一次选中所有的(某一种,红的和白的不能同时选,看提示)
一些图形的特殊情况未加判断,仅供学习


  1. (defun c:test( / ss ss2 i ent ents pts pte lst)
  2.   (prompt "选择剪切对象...")
  3.   (setq ss (ssget))
  4.   (prompt "选择被剪切对象...")
  5.   (setq ss2 (ssget))
  6.   (setq i 0)
  7.   (repeat (sslength ss2)
  8.     (setq ent (ssname ss2 i))
  9.     (setq ents (entget ent))
  10.     (setq pts (cdr (assoc 10 ents)))
  11.     (setq pte (cdr (assoc 10 (reverse ents))))
  12.     (setq lst (append lst (list (cons ent (list pts)) (cons ent (list pte)))))
  13.     (setq i (1+ i))
  14.   )
  15.   (command "_.trim" ss "")
  16.   (apply 'command lst)
  17.   (command "")
  18.   (princ)
  19. )

 楼主| 发表于 2003-12-3 17:32:00 | 显示全部楼层

谢谢大家的帮助,非常感谢,不过现在又遇到如下情况,希望大家帮忙
如图,想把红色的线截为白色的线的样子。
我用如下程序,但有问题,达不到我想要的效果,请高手帮忙。谢谢了
(repeat (sslength ss2)
    (setq ent (ssname ss2 i))
    (setq ents (entget ent))
    (setq pts (cdr (assoc 10 ents)))
    (setq pte (cdr (assoc 10 (reverse ents))))
    (setq lst (append lst (list (list ent pts) (list ent pte))))
    (setq i (1+ i))
  )
  (command "_.trim" entup entdown "")
  (apply 'command lst)
  (command "")
  (princ)

本帖子中包含更多资源

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

x
发表于 2003-12-3 17:45:00 | 显示全部楼层
这个应该说比较不好办,就你这个图来说,可能比较容易办到,但是图形稍微变化一下,就可能出现意想不到的变化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 08:39 , Processed in 0.201832 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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