乐筑天下

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

[编程交流] 将多段线偏移到新glo

[复制链接]

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 06:35:22 | 显示全部楼层 |阅读模式
我正在寻找一个LISP,它允许我将一个全局宽度(任何不同宽度)的层上的多段线偏移到另一个全局宽度为0的层(写入代码的特定层)。请帮忙
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:47:28 | 显示全部楼层

 
  1. (defun c:Test (/ *error* w l cl)
  2. ;;--- Tharwat 14. May. 2013 ---;;
  3. (defun *error* (x)
  4.    (if cl (setvar 'clayer cl))
  5.    (princ "\n*Cancel*")
  6. )
  7. (setq w [color=red]1.0[/color]            [color=royalblue]; Width Value[/color]
  8.        l [color=red]"0"[/color]        [color=royalblue] ; Layer Name[/color]
  9. )
  10. (if
  11.    (and (if (or (eq (type w) 'INT)
  12.                 (eq (type w) 'REAL)
  13.             )
  14.           t
  15.           (progn
  16.             (alert "Width Value must be either INTER , REAL Number <!>")
  17.             nil
  18.           )
  19.         )
  20.         (if (tblsearch "LAYER" l)
  21.           t
  22.           (progn
  23.             (alert "Layer name is not found in drawing <!>")
  24.             nil
  25.           )
  26.         )
  27.    )
  28.     (progn
  29.       (setq cl (getvar 'clayer))
  30.       (setvar 'clayer l)
  31.       (command "_.offset" "_Layer" "_Current" w "\" "\" "")
  32.       (setvar 'clayer cl)
  33.     )
  34. )
  35. (princ)
  36. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 06:52:51 | 显示全部楼层
下面是一个简单的示例,让您开始学习:
 
  1. (defun c:test (/ layer width entl dist ent pnt data)
  2. (setq layer "LAYER"
  3.        width 2.
  4.        entl  (entlast)
  5. )
  6. (initget 6)
  7. (if (and (setq dist (getdist "\nSpecify offset distance: "))
  8.           (setq ent (entsel "\nSelect LWPolyline to offset: "))
  9.           (or (eq (cdr (assoc 0 (entget (car ent)))) "LWPOLYLINE")
  10.               (progn (princ "\nInvalid object!") nil)
  11.           )
  12.           (setq pnt (getpoint "\nSpecify point on side to offset: "))
  13.      )
  14.    (progn
  15.      (command "_.offset" dist ent "_non" pnt "_EXIT")
  16.      (if (not (equal entl (setq entl (entlast))))
  17.        (entmod (subst (cons 8 layer)
  18.                       (assoc 8 (setq data (entget entl)))
  19.                       (subst (cons 43 width) (assoc 43 data) data)
  20.                )
  21.        )
  22.      )
  23.    )
  24. )
  25. (princ)
  26. )
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:02:28 | 显示全部楼层
谢谢alan!这非常有效!
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 07:15:35 | 显示全部楼层
 
这并不漂亮,但足以让你开始。快乐的编码。
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:25:10 | 显示全部楼层
谢谢你!我觉得你们真的很亲近!除非我遗漏了什么,否则我无法改变全局宽度。感谢您的快速回复。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 07:34:44 | 显示全部楼层
Tharwat,更改偏移命令设置时要小心。您不会将其更改回原始设置。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:40:30 | 显示全部楼层
完全正确,谢谢艾伦的宝贵评论。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:30 , Processed in 0.624237 second(s), 68 queries .

© 2020-2025 乐筑天下

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