明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2413|回复: 18

[提问] 求大神帮写一个调整leader角度的程序,万分感激!

[复制链接]
发表于 2015-4-3 22:34 | 显示全部楼层 |阅读模式
50明经币
本帖最后由 fire9527 于 2015-5-30 18:01 编辑

想要实现的功能如截图和上传的测试图中所述,
个人感觉“初步诉求”就够用了,后面两个只是更完善罢了,如果很难可以忽略,
这帖子立了很长时间了,先后得到 ZZXXQQxyp1964vectra三位大神的热情相助(衷心感谢你们!),演示效果很好,但是很遗憾,本人编程小白,在自己电脑上用就是不行
ZZXXQQ帮在下写的程序,CAD提示:; 错误: 参数太少
xyp1964帮在下写的程序,只是向右平移的效果,没有院长本人演示的效果
vectra的提示在下照做了,还是没有效果

这个问题也许在你们看来已经解决了,但是在下实在是捣鼓不明白,为体现诚意,特意提高悬赏,还希望你们好人做到底,送佛送到西,让小弟把这件宝贝带到工作中,再次叩谢!
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

;在ZZXXQQ的基础上改了一下,你这个引线带编组的,主驱动是mtext,,,所以,,,,他们的都移动不了
发表于 2015-4-3 22:34 | 显示全部楼层
本帖最后由 danxingpen 于 2015-5-31 17:31 编辑

复制代码
  1. (defun c:tt ()
  2. (if (setq ss (ssget '((0 . "LEADER"))))
  3.   (repeat (setq i (sslength ss))
  4.    (setq ent (entget(ssname ss (setq i (1- i)))))
  5.    (setq ptx (cadr(assoc 10 ent)))
  6.    (setq  a 0
  7.     n(length ent)
  8.     )
  9.     (foreach x ent
  10.       (if (= (car x) 10)
  11.   (progn
  12.     (setq a(1+ a))
  13.     (if (= a 2)
  14.       (setq movex (- ptx (cadr x)))
  15.     )
  16.   )  
  17.       )
  18.     )
  19.    (setq mtext(cdr(assoc '340 ent)))
  20.    (setq mtext(entget mtext))
  21.    (setq mtext(subst (cons 10 (mapcar '+ (cdr (assoc '10 mtext))(list movex 0 0)))
  22.           (assoc '10 mtext)
  23.           mtext
  24.           ))
  25.     (entmod mtext)
  26.   )
  27. )
  28. (princ)
  29. )
;在ZZXXQQ的基础上改了一下,你这个引线带编组的,主驱动是mtext,,,所以,,,,他们的都移动不了

回复

使用道具 举报

 楼主| 发表于 2015-4-5 20:52 | 显示全部楼层
自己默默的顶起来
回复

使用道具 举报

发表于 2015-4-6 10:40 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2015-5-31 08:54 编辑
  1. ;引线规整 明经 ZZXXQQ 2015.4.6 2015.5.31
  2. (defun c:tt ()
  3. (if (setq ss (ssget '((0 . "LEADER"))))
  4.   (repeat (setq i (sslength ss))
  5.    (setq ent (entget(ssname ss (setq i (1- i)))))
  6.    (setq ptx (cadr(assoc 10 ent)))
  7.    (setq ent1 (list) a T)
  8.    (foreach x ent
  9.     (if (/= (car x) 10)
  10.      (setq ent1 (cons x ent1))
  11.      (if (equal (cadr x) ptx 1e-6)
  12.       (setq ent1 (cons x ent1))
  13.       (if a (setq ent1 (cons (list (car x) ptx (caddr x) (last x)) ent1) a nil)
  14.        (setq ent1 (cons x ent1))
  15.       )
  16.      )
  17.     )
  18.    )
  19.    (entmod (reverse ent1))
  20.   )
  21. )
  22. (princ)
  23. )

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
fire9527 + 1 + 5 非常感谢,你第一时间热心相助!

查看全部评分

回复

使用道具 举报

发表于 2015-4-6 13:58 | 显示全部楼层
  1. ;; xyp-LeaderR 引线实体归正 (xyp-LeaderR 引线实体)
  2. (defun xyp-LeaderR (s1 / ptn lst s2 p1 p2 p3)
  3.   (setq ptn (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget s1))
  4.         ptn (mapcar 'cdr ptn)
  5.         lst (vl-remove-if-not '(lambda (x) (= (car x) 330)) (entget s1))
  6.         lst (mapcar 'cdr lst)
  7.         s2  (car lst)
  8.         lst (vl-remove-if-not '(lambda (x) (= (car x) 340)) (entget s2))
  9.         s2  (last (mapcar 'cdr lst))
  10.         p1  (car ptn)
  11.         p2  (cadr ptn)
  12.         p3  (inters p1 (polar p1 (* pi 0.5) 10) p2 (polar p2 0 10) nil)
  13.   )
  14.   (command "move" s2 "" "non" p2 "non" p3)
  15. )

  16. ;; tt(引线归正)
  17. (defun c:tt ()
  18.   (setq i -1)
  19.   (if (setq ss (ssget '((0 . "leader"))))
  20.     (while (setq s1 (ssname ss (setq i (1+ i))))
  21.       (xyp-LeaderR s1)
  22.     )
  23.   )
  24.   (princ)
  25. )

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-4-6 15:16 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

顶下院长,这个能发下码子吗?  发表于 2020-3-21 10:33
这效果是我终极诉求,院长名不虚传!这程序放在哪里的呢?  发表于 2015-6-4 22:21

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
fire9527 + 1 + 5 很给力!能赏赐在下吗?

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-4-19 14:02 | 显示全部楼层
ZZXXQQ 发表于 2015-4-6 10:40

龙版主,您的程序有这个提示:
选择对象:
; 错误: 参数太少

点评

板凳修了,再试试看。另:偶不是龙版。  发表于 2015-5-31 08:56
回复

使用道具 举报

 楼主| 发表于 2015-4-19 14:05 | 显示全部楼层
xyp1964 发表于 2015-4-6 13:58

院长,怎么实现不了您演示的效果了?我试了,只是向右平移而已,您的工具箱也是加载了的

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-4-19 18:46 | 显示全部楼层
把院长的xyp-LeaderR函数修改为下面的代码就可以了

  1. (defun xyp-LeaderR (s1 / ptn lst s2 p1 p2 p3)
  2.   (setq        ptn (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget s1))
  3.         ptn (mapcar 'cdr ptn)
  4.         lst (vl-remove-if-not '(lambda (x) (= (car x) 340)) (entget s1))
  5.         lst (mapcar 'cdr lst)
  6.         s2  (car lst)
  7.         p1  (car ptn)
  8.         p2  (cadr ptn)
  9.         p3  (list (car p1) (cadr p2) 0)
  10.   )
  11.   (command "move" s2 "" "non" p2 "non" p3)
  12. )

点评

还是不行啊,是不是我没有装ET的缘故?  发表于 2015-4-21 12:35
回复

使用道具 举报

 楼主| 发表于 2015-4-24 10:25 | 显示全部楼层
xyp1964 发表于 2015-4-6 15:16

院长,怎么只是移动呢?很需要这个功能,万望回复
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:05 , Processed in 0.318821 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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