明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8668|回复: 46

[提问] 批量偏移-画结构大样图专用!结构人的福音 源码奉上

  [复制链接]
发表于 2018-9-10 12:51 | 显示全部楼层 |阅读模式
本帖最后由 依然小小鸟 于 2018-9-13 11:31 编辑

    画大样图专用  如何实现 结构线内偏移   可设置偏移的距离 可设置是否删除源对象 希望 偏移后线的图层为当前图层   而不是源对象的图层   并且偏移后 线能自动裁剪

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-9-13 21:15 | 显示全部楼层
  1. (defun s2e (ss)
  2.   (if (= (type ss) 'pickset)
  3.     (vl-remove 'nil
  4.                (mapcar '(lambda        (x / e)
  5.                           (if (= (type (setq e (cadr x))) 'ename)
  6.                             e
  7.                           )
  8.                         )
  9.                        (ssnamex ss)
  10.                )
  11.     )
  12.   )
  13. )
  14. (defun plxyz (e fuz / i p pt)                          ;多段线节点三维坐标,连续重合点只取一个,根据fuz阀值过滤接近点
  15.   (setq        i (- (vlax-curve-getendparam e)
  16.              (logand (cdr (assoc 70 (entget e))) 1)
  17.              -1
  18.           )
  19.   )
  20.   (while (setq i (1- i)
  21.                p (vlax-curve-getpointatparam e i)
  22.          )
  23.     (setq pt (if (equal (car pt) p fuz)
  24.                pt
  25.                (cons p pt)
  26.              )
  27.     )
  28.   )
  29. )
  30. (defun pldir (pt)
  31.   (> (apply '+
  32.             (mapcar '(lambda (x y) (- (* (car x) (cadr y)) (* (car y) (cadr x))))
  33.                     (cons (last pt) pt)
  34.                     pt
  35.             )
  36.      )
  37.      0
  38.   )
  39. )
  40. (defun c:tt ()
  41.   (setq dd (Udist 7 "" "偏移距离<输入或鼠标直接量取>" dd nil))
  42.   (vl-every '(lambda (x)
  43.                (mapcar '(lambda (x) (vla-put-color x 1))
  44.                        (vlax-safearray->list
  45.                          (vlax-variant-value
  46.                            (vla-offset
  47.                              (vlax-ename->vla-object x)
  48.                              (if (pldir (plxyz x 1e-3))
  49.                                (- dd)
  50.                                dd
  51.                              )
  52.                            )
  53.                          )
  54.                        )
  55.                )
  56.              )
  57.             (s2e (ssget))
  58.   )
  59.   (princ)
  60. )
发表于 2018-9-14 00:09 | 显示全部楼层
依然小小鸟 发表于 2018-9-13 23:16
院长大大 怎么用不了呢 我没装学院派工具箱  我看这代码没有学院派函数吧

  1. (defun udist (bit kwd msg def bpt / inp)
  2.   (if def
  3.     (setq msg (strcat "\n" msg "<" (rtos def) ">: ")
  4.           bit (* 2 (fix (/ bit 2)))
  5.     )
  6.     (setq msg (strcat "\n" msg ": "))
  7.   )
  8.   (initget bit kwd)
  9.   (setq        inp (if        bpt
  10.               (getdist msg bpt)
  11.               (getdist msg)
  12.             )
  13.   )
  14.   (if inp
  15.     inp
  16.     def
  17.   )
  18. )
发表于 2018-9-13 21:16 | 显示全部楼层
  1. ;; tt(曲线内偏移)
  2. (defun c:tt ()
  3.   (xyp-Start)
  4.   (setq dd (Udist 7 "" "偏移距离<输入或鼠标直接量取>" dd nil))
  5.   (setq i -1)
  6.   (if (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
  7.     (while (setq s1 (ssname ss (setq i (1+ i))))
  8.       (xyp-Offset s1 dd nil t nil)
  9.     )
  10.   )
  11.   (xyp-End)
  12. )
 楼主| 发表于 2018-9-10 13:53 | 显示全部楼层
本帖最后由 依然小小鸟 于 2018-9-11 18:13 编辑

  找到一个类似的 但是不能自动裁剪 而且 不能都向结构线内偏移   不支持弧线

本帖子中包含更多资源

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

x
 楼主| 发表于 2018-9-10 20:26 | 显示全部楼层
5个人下载 求大神帮忙
 楼主| 发表于 2018-9-13 11:26 | 显示全部楼层
拖明经群 群友的福  已经能批量偏移了 但是没办法设置偏移距离 和偏移后线的图层  求大神能增加此项功能 和偏移后线的图层为当前图层

本帖子中包含更多资源

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

x
发表于 2018-9-13 17:33 | 显示全部楼层
感谢 "依然小小鸟" 分享程序,下载学习了!!!!
 楼主| 发表于 2018-9-13 17:55 | 显示全部楼层
yoyoho 发表于 2018-9-13 17:33
感谢 "依然小小鸟" 分享程序,下载学习了!!!!

...  有人能解决我的问题吗
 楼主| 发表于 2018-9-13 23:16 | 显示全部楼层

院长大大 怎么用不了呢 我没装学院派工具箱  我看这代码没有学院派函数吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 18:36 , Processed in 0.304802 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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