乐筑天下

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

[编程交流] 在内部或外部偏移多段线

[复制链接]
BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 17:10:41 | 显示全部楼层
  1. ; chevron island creater
  2. ; this use the extrim command to trim shape
  3. ; By Alan H Jan 2012
  4. (defun C:Chevron ( / obj pt1 pt2 pt3 pt4 newpt1 newpt2 )
  5. (acet-error-init (list
  6.                   (list   "cmdecho" 0
  7.                         "highlight" 0
  8.                         "regenmode" 1
  9.                            "osmode" 0
  10.                           "ucsicon" 0
  11.                        "offsetdist" 0
  12.                            "attreq" 0
  13.                          "plinewid" 0
  14.                         "plinetype" 1
  15.                          "gridmode" 0
  16.                           "celtype" "CONTINUOUS"
  17.                         "ucsfollow" 0
  18.                          "limcheck" 0
  19.                   )
  20.                   T     ;flag. True means use undo for error clean up.
  21.                   '(if redraw_it (redraw na 4))
  22.                  );list
  23. );acet-error-init
  24. (setq obj (car (entsel "\nPick pline or circle")))
  25. ; should do a object test here
  26. (setq whatis (cdr (assoc 0 (entget obj))))
  27. (if (= whatis "LWPOLYLINE")
  28. (princ)
  29. (progn
  30. (princ "\You have picked something other than a polyline ")
  31. (princ "\Remake into a pline and do again ")
  32. (setq dummy (getstring "\press any key"))
  33. (exit)
  34. ) ; progn
  35. ) ; if
  36. (setq pt1 (Getpoint "\nPick Line start point"))
  37. (setq pt2 (Getpoint pt1 "\nPick end point"))
  38. (command "line" pt1 pt2 "")
  39. (setq gap1 (getreal "\nenter spacing 1"))
  40. (setq gap2 (getreal "\nenter spacing 2"))
  41. (setq pt3 (getpoint "\nPick 1st cross point"))
  42. (setq pt4 (getpoint pt3 "\nPick 2nd cross point"))
  43. (setq dist (distance pt3 pt4))
  44. (setq x (fix (/ dist (+ gap1 gap2))))
  45. (setq newpt1 (strcat (rtos gap1 2 2) ",0.0"))
  46. (setq newpt2 (strcat (rtos gap2 2 2) ",0.0"))
  47. (repeat x
  48. (command "copy" "L" "" "0,0" newpt1)
  49. (command "copy" "L" "" "0,0" newpt2)
  50. )
  51. (load "Extrim")
  52. (etrim obj pt1)
  53. (acet-error-restore)
  54. ) ; end defun
  55. (princ)

 
请注意,指定圆的半径不需要引号。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 17:15:22 | 显示全部楼层
谢谢大家的帮助。我很感激。
 
比格尔,谢谢你的雪佛龙例行节目。我和自己的关系如此密切,我决定继续坚持下去。
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 17:17:36 | 显示全部楼层
因此,我正在寻找帮助的这些位是一个更大的lisp的一部分,用于创建图案填充道路标记。lisp通过用户选择通常沿闭合多段线中间运行的多段线来工作。这将放置图案填充标记。通过选择闭合多段线,可以修剪图案填充标记。
 
Off40确定多段线外的点,以便将其传递给Extrim进行修剪,而无需选择围栏和边。
 
我遇到的问题与变量有关。lisp在第一次运行时就可以完美地工作。除了将输出线的宽度更改为0.1之外,它第二次似乎运行得很好。
 
  1. (defun c:plpoint (/)
  2. (vl-load-com)
  3. (setq LP1 1)
  4. (while LP1
  5. (prompt "\nSelect polyline boundary: ")
  6. (setq PSS (ssget "_:S" '((0 . "LWPOLYLINE"))))
  7. (if (/= PSS nil)
  8.   (setq LP1 nil)
  9.   (prompt "\nNO POLYLINE SELECTED, TRY AGAIN. ")
  10. )
  11. )
  12. (setq PPV (vlax-curve-getStartPoint (vlax-ename->vla-object (ssname PSS 0))))
  13. (vl-princ-to-string PPV)
  14. (vl-cmdf "_circle" PPV 3)
  15. )

 
 
我运行了一些测试,发现变量outline在程序第一次完成后没有被释放。它会更改第一次运行时闭合多段线的宽度。
 
我知道这是一个本地化变量的问题,我已经阅读了Leemac关于这个主题的教程,但是当我把它添加到
 
  1. (command "._pedit" outpline "_W" 0.1 "")

 
它会导致错误并使程序崩溃。
 
如果您能帮我解决这个问题,我将不胜感激。
 
  1. (defun C:hatch_lining (/ sel1 ang coords elist midp offsetted p1 p2 p3 pline1 SUCE SUOM SUSM SUAB SUAD SUCL SUCR)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:19:35 | 显示全部楼层
谁能告诉我这个?
回复

使用道具 举报

0

主题

19

帖子

21

银币

限制会员

铜币
-2
发表于 2022-7-5 17:22:52 | 显示全部楼层
以上代码是否完整?我不明白你在哪里定义了“输出线”。。。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 17:27:31 | 显示全部楼层
创建(或从一开始)图案填充不是要容易得多吗?
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 17:31:05 | 显示全部楼层
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 17:34:07 | 显示全部楼层
Can anyone give me a dig out with this?
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 17:38:26 | 显示全部楼层
Is the above code complete?  I don't see where you've defined "outpline"...
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:40:44 | 显示全部楼层
Wouldn't it be much, much, much easier to create (or start with) a HATCH?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 13:47 , Processed in 0.510205 second(s), 70 queries .

© 2020-2025 乐筑天下

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