乐筑天下

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

[编程交流] AutoLisp用于缩放、扩展、purg

[复制链接]

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:36:31 | 显示全部楼层 |阅读模式
大家好,我是Autolisp函数的新手,我正在尝试查找/绘制一个例程,该例程可以缩放扩展、清除图形、将所有线宽设置为默认值并快速保存文件,如果有人已经有了这样的功能,我真的希望获得帮助。
 
我还一直在尝试绘制一个lisp,将特定角点的两条线延伸/拉伸一定距离。
 
正如我之前所说,我真的很期待你能给予的帮助。谢谢b4!
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 16:41:42 | 显示全部楼层
欢迎来到CADTutor lalcalac。
 
Autocad中有一个很好的功能,我认为这在很大程度上被忽视了,并且非常易于使用。
动作记录器是一个按键记录器,我一直在使用它。
可以在右键单击快捷菜单中访问它,以动态创建宏,或访问您以前创建和保存的宏。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:44:47 | 显示全部楼层
或者用老式的方式打开记事本,每次手动复制一行键入的每个步骤,您可能需要在前面使用“-”以关闭对话框提示,例如“-purge B”清除块,您还需要一个空行,在那里您需要按enter键退出,然后将文件另存为脚本文件Mycleanup。scr注意“.scr”,运行类型“Script mycleanup”
 
-清除
全部的
*
N
Q保存y
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:48:50 | 显示全部楼层
我不知道这个动作录像机,我必须说,太棒了,我把你和比加尔给我的提示混合在一起,效果很好,现在我只需要想办法做角球,你们太棒了,非常感谢!!!
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 16:49:59 | 显示全部楼层
 
好消息,很高兴你喜欢!
我真的认为很多人从来没有尝试过或注意到它。
 
由于我自己并不编写lisp,因此在运行中使用它非常有帮助。
在处理高度重复的任务时,它可以真正节省时间。
 
试着把它用在那个角落里。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:53:36 | 显示全部楼层
好的,到目前为止,我用这个动作录制器获得了很多有用的东西,但是,我有这个问题,我不知道我做错了什么,我使用命令lenghten来做转角的事情,并使用动作录制器自动设置增量和距离,但当宏停止时,它发送给我这个错误(附图片),希望能帮助我,谢谢b4
173636t66mzxa16va6e5qa.jpg
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 16:56:42 | 显示全部楼层
我看到您在选择对象之前定义了Delta,这似乎是您应该做的。
您想要延长的对象类型到底是什么?
 
刚刚重温了你的第一篇文章,我看到它们是两条线,我猜它们在端点处相交,并定义了角点?
 
想知道拉伸是更好的命令还是缩放,因为加长命令只允许选择单个对象。
如果使用“比例”,并将基点定义为它们相交的顶点,这是否可行?
 
我经常设置动作录制器宏,这样我就可以在没有选择的情况下点击“继续播放”,但这似乎不是一个合适的选项,尽管您可以尝试一下。
 
如果您可以发布一张图纸。,如果我能更好地理解线条是什么样子,我很乐意尝试一下。
我想知道LENGTHEN是否是最适合您尝试做的事情的命令,它可能是,但没有足够的信息,我很难确定。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:59:30 | 显示全部楼层
这张图展示了我想做的事情,我想从选项A到选项B,我通常是手工做的,在角上画一个圆并延伸线,但正如你所见,这需要很多时间,因为有很多角,(这张图只是一个小例子),希望它有助于理解情况,谢谢b4!
角线。图纸
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 17:02:41 | 显示全部楼层
感谢您发布。dwg,它肯定会清除你的目标。
不幸的是,我认为没有简单的方法可以做到这一点。
看起来相当劳动密集型。
如果要编写lisp,我有点好奇,选择集将如何定义。
 
对不起,我知道这不是你想听的答案,也不是我想给你的答案。
很高兴你喜欢这个动作录音机。使用越多,创建这些宏的能力就越好。
它确实有一些bug,但即便如此,自从我开始使用它以来,它还是为我节省了不少时间。
祝你的角球好运,希望其他人能给你一个有创意的方法。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:05:04 | 显示全部楼层
好的,你想要一个几年前我做的lisp,叫做TICS,用于建筑TICS,将线延伸到一个已知的距离,你可以批量选择等等,
 
  1. ; BY Alan H 2012
  2. ; tics.lsp
  3. ; draw architectural tic marker tics.lsp
  4. ;defun exline
  5. (defun ah:exline (en / p1 p2 p3 p4 ang )
  6. (setq p1 (vlax-safearray->list (vlax-variant-value(vla-get-startpoint en))))
  7. (setq p2 (vlax-safearray->list (vlax-variant-value(vla-get-endpoint en))))
  8. (setq ang (angle p1 p2))
  9. (setq p3 (polar p1 (- ang pi) tic_len))
  10. (setq p4 (polar p2 ang tic_len))
  11. (command "line" p1 p3 "")   
  12. (command "line" p2 p4 "")   
  13. )
  14. ; pline co-ords
  15. ; By Alan H
  16. (defun AH:getcoords (ent / I len)
  17. (setq co-ords (vlax-safearray->list (vlax-variant-value (vlax-get-property en "Coordinates" ))))
  18. (setq len (length co-ords))
  19. (setq numb (/ len 2))
  20. (setq I 0)
  21. (repeat numb
  22. (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
  23. (setq co-ordsxy (cons xy co-ordsxy))
  24. (setq I (+ I 2))
  25. )
  26. ) ;defun
  27. (defun AH:expoly (ordsxy / pt1 pt2 num x)
  28. (setq x (length ordsxy))
  29. (if (= (vla-get-closed en) :VLAX-FALSE)
  30. (setq num x)
  31. (setq num (- x 1)) ; open
  32. ) ; closed
  33. (setq p2 (nth (setq x (- x 1)) ordsxy))
  34. (repeat num
  35. (setq p1 (nth (setq x (- x 1)) ordsxy))
  36. (setq ang (angle p1 p2))
  37. (setq p3 (polar p1 (- ang pi) tic_len))
  38. (setq p4 (polar p2 ang tic_len))
  39. (command "line" p1 p3 "")
  40. (command "line" p2 p4 "")
  41. (setq p2 p1)
  42. )
  43. )
  44. ; starts here
  45. ; checklay make if missing
  46. (if (=  (tblsearch "layer" "Tics") nil)
  47. (command "-layer" "n" "Tics" "c" 1 "Tics" "")
  48. )
  49. (defun c:tics ( / tic_len ss y)
  50. (setq tic_len (getdist "\nEnter tick size mm <20> "))
  51. (if (= tic_len nil) ; pressed enter so 20
  52. (setq tic_len 20)
  53. )
  54. ; Selection set to measure
  55. ;now pick multiple lines etc
  56. (setq exlay (getvar 'clayer))
  57. (setvar "clayer" "tics") ; change layer name to suit
  58. (setq oldsnap (getvar 'osmode))
  59. (setq ss (ssget)) ; no check if it returned something
  60. ; put a create layer here
  61. (setvar 'osmode 0)
  62. (repeat (setq y (sslength ss))
  63. (setq en (vlax-ename->vla-object (ssname ss (setq y (- y 1)))))
  64. ; Entity type
  65. (setq entype (vla-get-ObjectName en))
  66. (cond ((= entype "AcDbLine")(AH:exline en))
  67.      ((= entype "AcDbPolyline")(AH:getcoords en)(AH:expoly co-ordsxy)(setq co-ordsxy nil))
  68. )
  69. )
  70. (setvar 'clayer exlay)
  71. (setvar 'osmode oldsnap)
  72. (princ)
  73. ) ;defun
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 14:17 , Processed in 0.687788 second(s), 74 queries .

© 2020-2025 乐筑天下

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