乐筑天下

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

[编程交流] 多重偏移,如何修复

[复制链接]

27

主题

182

帖子

163

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
139
发表于 2022-7-5 23:26:43 | 显示全部楼层 |阅读模式
伙计们,
 
我得到了这段代码,要做多次偏移,效果很好,但我需要做一个补充,即最终对象的方向,代码不允许你选择它,每次代码在对象上方绘制偏移线,有可能修复它吗?指示终点偏移线的方向。。。
 
提前感谢。。。
 
  1. (defun c:mo (/ plines ; selection set of polylines
  2.       ext ; extrnal point
  3.       dist ; distance to offset
  4.       poly ; a polyline from plines
  5.       plist ; the list of poly
  6.       del ; polyline to delete
  7.       int ; internal point
  8.       i
  9.       layer)  
  10. (command "undo" "begin")
  11. (princ "select polylines")
  12. (setq plines (ssget)
  13. i      0
  14. ext    (getvar "limmax")
  15. dist   (getdist "distance = ")
  16. )
  17. (repeat (sslength plines)
  18.    (setq poly (ssname plines i))
  19.    (setq plist (entget poly))
  20.    (command "offset" dist poly ext "")
  21.    ;(setq del (entlast)
  22.    ;int (polar
  23.    ;(cdr (assoc 10 (entget del)))
  24.    ;(angle
  25.    ;(cdr (assoc 10 (entget del)))
  26.    ;(cdr (assoc 10 plist)))
  27.    ;(* 2 (distance (cdr (assoc 10 plist))
  28.    ;(cdr (assoc 10 (entget del)))))))
  29.    ;(command "offset" dist poly int "")
  30.    ;(entdel del)
  31.    (setq i (1+ i))
  32. )
  33. (command "undo" "end")
  34. (if (= "Y"
  35. (strcase (getstring "\ndelete initial polylines? (Y/N) = "))
  36.      )
  37.    (command "erase" plines "")
  38. )
  39. )
回复

使用道具 举报

1

主题

80

帖子

79

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:43:44 | 显示全部楼层
未经测试,但应修复问题。我更改了“ext”(添加getpoint)和“dist”(添加)
 
  1. (defun c:mo (/ plines ; selection set of polylines
  2.       ext ; extrnal point
  3.       dist ; distance to offset
  4.       poly ; a polyline from plines
  5.       plist ; the list of poly
  6.       del ; polyline to delete
  7.       int ; internal point
  8.       i
  9.       layer)  
  10. (command "undo" "begin")
  11. (princ "select polylines")
  12. (setq plines (ssget)
  13. i      0
  14. ext    (getpoint "\nSelect the offset direction")
  15. dist   (getdist "\ndistance = ")
  16. )
  17. (repeat (sslength plines)
  18.    (setq poly (ssname plines i))
  19.    (setq plist (entget poly))
  20.    (command "offset" dist poly ext "")
  21.    ;(setq del (entlast)
  22.    ;int (polar
  23.    ;(cdr (assoc 10 (entget del)))
  24.    ;(angle
  25.    ;(cdr (assoc 10 (entget del)))
  26.    ;(cdr (assoc 10 plist)))
  27.    ;(* 2 (distance (cdr (assoc 10 plist))
  28.    ;(cdr (assoc 10 (entget del)))))))
  29.    ;(command "offset" dist poly int "")
  30.    ;(entdel del)
  31.    (setq i (1+ i))
  32. )
  33. (command "undo" "end")
  34. (if (= "Y"
  35. (strcase (getstring "\ndelete initial polylines? (Y/N) = "))
  36.      )
  37.    (command "erase" plines "")
  38. )
  39. )
回复

使用道具 举报

27

主题

182

帖子

163

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
139
发表于 2022-7-5 23:52:43 | 显示全部楼层
 
已测试!。。。谢谢CheSyn!。。。效果很好!!!。。。
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:58:08 | 显示全部楼层
大家好!
有没有办法在上面的代码中添加更改偏移对象层的功能??
提前感谢!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:14:20 | 显示全部楼层
要更改新创建的多段线的图层(调整蓝色部分以适合您的情况):
  1. ...
  2.    (setq plist (entget poly))
  3.    (command "offset" dist poly ext "")
  4.    [color=magenta](command "_CHPROP" (entlast) "" "_LA" "[color=blue]NameOfTargetLayer[/color]" "")[/color]
  5. ...
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:19:22 | 显示全部楼层
 
哇,非常感谢!非常感谢你的帮助!完全按照需要工作!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:28:40 | 显示全部楼层
不客气!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:10 , Processed in 0.657702 second(s), 77 queries .

© 2020-2025 乐筑天下

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