明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 347|回复: 5

[提问] 求LISP程序:多段线与直线组 Y方向延伸至与指定点的Y坐标相同

[复制链接]
发表于 2024-5-17 00:22 | 显示全部楼层 |阅读模式
30明经币
求LISP程序:多段线与直线组 Y方向延伸至与指定点的Y坐标相同
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

(defun c:tt(/ CD CZ DERD DSDERD DYD ENT I LST LSZ P P1 P2 PP PP2 SS ZDD ZDZB ZMH) (prompt "\n框选线") (setq ss(ssget)) (setq p(getpoint)) (defun ff(pp p1 p2 pp2) (setq cz(abs(-(cadr pp) (cadr p)))) (if(/= 0 (setq lsz(-(car p1)(car p2)))) (setq cd(abs(/ cz (sin(atan(/(-(cadr p1)(cadr p2)) (-(car p1)(car p2)))))))) (setq cd cz) ) ...
发表于 2024-5-17 00:22 | 显示全部楼层
(defun c:tt(/ CD CZ DERD DSDERD DYD ENT I LST LSZ P P1 P2 PP PP2 SS ZDD ZDZB ZMH)
(prompt "\n框选线")
(setq ss(ssget))
  (setq p(getpoint))
  (defun ff(pp p1 p2 pp2)
         (setq cz(abs(-(cadr pp) (cadr p))))
         (if(/= 0 (setq lsz(-(car p1)(car p2))))
           (setq cd(abs(/ cz (sin(atan(/(-(cadr p1)(cadr p2)) (-(car p1)(car p2))))))))
           (setq cd cz)
         )
          (setq zdzb(polar pp (angle pp2 pp) cd))
   )
(repeat(setq i(sslength ss))
    (if(= "LINE"(cdr(assoc 0(SETQ ENT(entget(ssname ss(setq i(1- i))))))))
       (progn
        (SETQ P1(cdr(assoc 10 ENT)))
        (SETQ P2 (cdr(assoc 11 ENT)))
        (if(<(cadr p1)(cadr p2))
           (setq pp p1 pp2 p2 zmh 10)
           (setq pp p2  pp2 p1 zmh 11)
        )
        (setq zdzb(ff pp p1 p2 pp2))
        (entmod(subst (cons zmh  zdzb) (cons zmh pp) ent ) )
       )
     (progn
        (setq lst(mapcar'cdr(vl-remove-if-not '(lambda(x)(= 10(car x))) ent)))
        (setq dyd(car lst))
        (setq derd(cadr lst))
        (setq zdd(last lst))
        (setq dsderd(cadr(reverse lst)))
        (setq zdzb(ff dyd dyd derd derd))
        (entmod(subst (cons 10 zdzb) (cons 10 dyd) ent ) )
        (setq zdzb(ff zdd zdd dsderd dsderd))
        (entmod(subst (cons 10 zdzb) (cons 10 zdd) (entget(cdr(assoc -1 ent))) ) )
     )
  )
)
(princ)
)
回复

使用道具 举报

发表于 2024-5-17 08:12 | 显示全部楼层
http://bbs.mjtd.com/thread-183774-1-1.html
可以参考这个帖子,多段线只支持2个端点的。
回复

使用道具 举报

发表于 2024-5-17 08:58 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2024-5-17 11:46 | 显示全部楼层
guosheyang 发表于 2024-5-17 08:54
(defun c:tt(/ CD CZ DERD DSDERD DYD ENT I LST LSZ P P1 P2 PP PP2 SS ZDD ZDZB ZMH)
(prompt "\n框选 ...

多谢大佬,
回复

使用道具 举报

发表于 2024-5-17 14:19 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-17 01:24 , Processed in 0.149119 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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