乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 10

[编程交流] 偏移到不同距离

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:15:08 | 显示全部楼层 |阅读模式
大家好,
 
我正在寻找多偏移的自动化。
我有一条多段线,我必须将这条多段线偏移到多个距离。。。
例如:偏移到20比偏移到35和偏移到56(震源线的所有方向偏移)
 
可以创建lisp或类似(宏,…)的东西吗在中,我可以输入不同的值,然后当我单击线条和方向时,脚本将线条偏移到所有值。。。
 
Thx(很抱歉我的英语不好:-)
回复

使用道具 举报

22

主题

326

帖子

185

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
243
发表于 2022-7-6 09:25:15 | 显示全部楼层
你提到普林还是莱恩???
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 09:29:51 | 显示全部楼层
过去有一个设置,允许您在同一个命令中停留任意长的时间,这可能会满足您的需要。然而,我认为该命令是重复的,已经停止。由于您使用的是旧版本,您可以尝试一下,它可能仍然对您可用。
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:33:11 | 显示全部楼层
我说的是折线对不起。
这是一个运行良好的代码。。。
但是现在我想把一个负值。。。
例如,将ed var从15更改为-15。。。使线偏移另一边。。。
 
  1. (defun C:dof()
  2. (setq ad 9)
  3. (setq zd 10)
  4. (setq ed 15)
  5. (while (setq obj (car (entsel "\nSelect object:")))
  6. (setq ps (getpoint "\nSide to offset:"))
  7. (if ps
  8. (progn
  9. (command "_offset" ad obj ps "")
  10. (command "_offset" zd obj ps "")
  11. (command "_offset" ed obj ps "")
  12. )
  13. )
  14. )
  15. (princ)
  16. )

 
不知道是否可能
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 09:41:45 | 显示全部楼层
您可以考虑使用MLine。使用预设的偏移值创建多线样式。多线将分解为一组标准线。
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:50:56 | 显示全部楼层
是的,但我必须从多段线开始。。。
是否可以将多段线转换为多线,然后将多线转换为多段线。。。
该操纵器的目的是将现有绘图转换为cnc刀具的多路径。
 
正如我之前所说的,有负值偏移的解决方案吗
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:55:43 | 显示全部楼层
好吧
 
这就是我要做的
  1. (defun C:dof()
  2. (setq ad 9)
  3. (setq zd 10)
  4. (setq ed 15)
  5. (while (setq obj (car (entsel "\nSelect object:")))
  6. (setq psp (getpoint "\nSide to offset positif:"))
  7. (setq psn (getpoint "\nSide to offset negatif:"))
  8. (if psp
  9. (progn
  10. (command "_offset" ad obj psp "")
  11. (command "_offset" zd obj psp "")
  12. (command "_offset" ed obj psn "")
  13. )
  14. )
  15. )
  16. (princ)
  17. )

 
我为偏移量定义了2点。。。一个正信号(psp)和一个负信号(psn)。点击更多,但效果很好。。。
 
我的最后一个问题:任何人都可以告诉我,我如何把我的每一个偏移线在一个特定的层。。。?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:58:36 | 显示全部楼层
可能
 
  1. (defun c:test (/ ss e p d)
  2. (if (and (setq ss
  3.                  (car (entsel "\n Select on entity [Line,Spline,Polyline] :")
  4.                  )
  5.           )
  6.           (member (cdr (assoc 0 (setq e (entget ss))))
  7.                   '("LINE" "SPLINE" "LWPOLYLINE")
  8.           )
  9.           (setq p (getpoint "\n Specify side offset :"))
  10.      )
  11.    (while
  12.      (setq d (getdist "\n Specify offset distance :"))
  13.       (command "_.offset" d ss p "")
  14.    )
  15.    (princ)
  16. )
  17. (princ)
  18. )

 
塔瓦特
回复

使用道具 举报

22

主题

326

帖子

185

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
243
发表于 2022-7-6 10:04:34 | 显示全部楼层
-哦,现在我明白你的意思了^^你可以用vla偏移来抵消负距离(但有时它不喜欢你想做的^^)。
语法:vla offset vlaLine distance
所以你可以试试这样的东西(只是为了表演^^):
 
  1. (defun C:dof(/ lstDis obj)
  2. (setq lstDIS '(9 10 -15))
  3. (while (setq obj (car (entsel "\nSelect object:")))
  4. (foreach dis lstDIS
  5. (vla-offset (vlax-ename->vla-object obj) dis)
  6. )
  7. )
  8. (princ)
  9. )

 
-下一步:在代码中,您可以在一个命令之前使用(setvar“clayer”“此处为您的层”)将每一行*放在一个特定的层中
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 10:10:36 | 显示全部楼层
你可以做一个小的子程序并从中构建。。。
 
  1. (defun _offsetLots (entity point offsetlist)
  2. (foreach offset offsetlist (command "_.offset" offset entity "_non" point ""))
  3. )

 
致电:
  1. (_offsetLots (entsel) (getpoint) '(1. 2. 3. 4. 5.))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 06:28 , Processed in 0.372320 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表