明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3528|回复: 12

[函数] [讨论]找出三角形最长边删去 已由XYP用其它方法解决,已由GU_xl成功解决

  [复制链接]
发表于 2010-7-24 17:48:00 | 显示全部楼层 |阅读模式
本帖最后由 crazylsp 于 2011-4-21 09:17 编辑

如何找出直线围成的三角形中最长边并删去   
如图,想文字摆放好位置后,在线上选择一点,与文字的P3,P4连接成三条直线,然后窗选三条直线,找出最长的一条边,把这条边删去,这样引出线就大工造成,但不会做找出对应最长距离这个数值对应的黄色的边...555




  1.            
复制代码

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-7-24 18:51:00 | 显示全部楼层
修改如下:
  1. ...
  2.       (setq list1 (list ds1 ent1)  list2 (list ds2 ent2) list (list ds3 ent3)
  3.               list1 (list list1 list2 list3));append 改为list ,变量值不要赋给内部函数list,改为list1
  4.         (if  (setq dsmax (max ds1 ds2 ds3))
  5.             (progn
  6.               ;这里怎么找出list表里的最大距离对应的直线?
  7.             (entdel (cadr (assoc dsmax list1 ));删除距离最大的边
  8.          ...
  9.             )
  10.         )
  11. ...
未经测试!
发表于 2010-7-24 19:36:00 | 显示全部楼层

为何要这么复杂?直接用leader命令不行吗?

发表于 2010-7-24 21:40:00 | 显示全部楼层
太复杂了,简单的leader命令早就做完了,还在那里弄这个东东,真是想挑战无中生有的东东呀?
 楼主| 发表于 2010-7-25 18:33:00 | 显示全部楼层

谢谢大家的指导,从2楼中又学到一点知识了。cad的leader用久了,感觉很麻烦,用窗口的方式来完成,感觉快点。两个换起用调节心情。

 

发表于 2010-7-25 23:31:00 | 显示全部楼层

为什么要画好线以后再删?

计算出P3,P4中与引出点最近的那个点

直接相连不好吗

 

leader确实不好用

采用楼主的方式扩展性是很高的

主要看使用者需要标注的内容是什么

 

发表于 2010-7-26 07:06:00 | 显示全部楼层
文本引线标注:
  1. ;; 另类文本引线标注(需要学院派工具箱XCAD的支持)
  2. (defun c:tt ()
  3.   (cmdlasc0)
  4.   (princ "\n选择文字: ")
  5.   (if (and (setq ss (ssget '((0 . "TEXT"))))
  6.     (setq p0 (getpoint "\n基点<退出>: "))
  7.       )
  8.     (progn
  9.       (setq i -1
  10.      a (* xyp-sc -100)
  11.       )
  12.       (xyp-MkLaCo "引出线" 3)
  13.       (while (setq s1 (ssname ss (setq i (1+ i))))
  14. (setq p1  (xyp-get-MinMaxPoint s1 1)
  15.        p3  (xyp-get-MinMaxPoint s1 3)
  16.        p1  (xyp-get-Pt2XY p1 a a)
  17.        p3  (xyp-get-Pt2XY p3 (- a) a)
  18.        ptn (if (<= (distance p0 p1) (distance p0 p3))
  19.       (list p0 p1 p3)
  20.       (list p0 p3 p1)
  21.     )
  22.        s2  (xyp-Entmake-lwPolyline ptn nil)
  23. )
  24.       )
  25.     )
  26.   )
  27.   (cmdla1)
  28. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2010-7-26 09:21:00 | 显示全部楼层
本帖最后由 crazylsp 于 2011-4-21 09:18 编辑

谢谢大家和xyp大师,大师就是不一样;

 

 

本帖子中包含更多资源

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

x
 楼主| 发表于 2010-7-26 11:02:00 | 显示全部楼层
本帖最后由 crazylsp 于 2011-4-21 09:18 编辑

按2楼修改下,出现了 ; 错误: 参数类型错误: lentityp ((-1 . <图元名: 7efbf468>) (0 . "LINE") (330 . 

      )

 

发表于 2010-7-26 13:50:00 | 显示全部楼层
crazylsp发表于2010-7-26 11:02:00按2楼修改下,出现了 ; 错误: 参数类型错误: lentityp ((-1 . <图元名: 7efbf468>) (0 . \"LINE\") (330 . <图元名: 7ef73c10>) (5 . \"2417A5\") (100 . \"AcDbEntity\") (67 . 0

未仔细看你的程序,ent1 已经是数据表而非图元名,修改如下:

(entdel (cdr (assoc -1(cadr (assoc dsmax list1 ))));删除距离最大的边

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

本版积分规则

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

GMT+8, 2024-10-2 08:26 , Processed in 0.194127 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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