乐筑天下

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

[编程交流] 偏移2行添加尺寸

[复制链接]

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:30:17 | 显示全部楼层 |阅读模式
我想要一个lisp,可以在平面图中添加带束。我看到它工作的方式是我选择一个网格,它在一个叫做混凝土的层上每侧偏移1200mm的线,并设置为线型“awthidden2”。我希望它也能自动添加2400的维度,以及一个我们称之为SYM-SlabTag的块(不确定这个是否可行,以及编写lisp的人是否需要查看该块)
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 16:34:46 | 显示全部楼层
你能上传一个样本吗
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:42:12 | 显示全部楼层
如果你能上传一个你想要完成的事情的样本,那么这个模块将真正有助于理解正在发生的事情。
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:44:52 | 显示全部楼层
干得好。目前,我只是将其全部放在一个dwg上,但实际情况是网格将出现在外部参照上,以及我想要在新图形上的所有其他项目上。因此,我将打开一个没有任何内容的新图形,在网格中进行外部参照,启动lisp,它将请求网格,我选择网格(选择网格的顶部和底部),它将两条绿线放在(网格每侧1200)上,带有尺寸和“slab tag”谢谢大家
测验图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:49:21 | 显示全部楼层
很难在外部参照的每一侧偏移线,这就是我发现的问题。
 
因为,很明显,对于块,无法从块本身偏移任何线。
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:54:11 | 显示全部楼层
我的措辞有点糟糕;它不必偏移这些线。我看到的是,我们有一条网格线,lisp可以要求我们提供中心线(选择网格的最底部和最顶部点),然后它知道最外面的线将是我们选择的点的任意一边1200。然后在中间添加尺寸和标签。在某种程度上,它就像一条多行,其中有两条虚线,多行的中心是网格(除了我不想要多行,这只是一个例子),希望这能解决问题。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:56:37 | 显示全部楼层
试试这个:
 
  1. (defun c:gridline (/ *error* varLst oldVars tpt bpt ang llpt l1 lrpt l2 l1mid l2mid)
  2. ;     --- Error Trap ---
  3.    (defun *error* (msg)
  4.    (mapcar 'setvar varLst oldVars)
  5.    (if (= msg "")
  6.        (princ "\nFunction Complete.")
  7.        (princ "\nError or Esc pressed... ")
  8.    ) ;_  end if
  9.    (princ)
  10.    ) ; end of *error*
  11.    (setq varLst  (list "CMDECHO" "CLAYER" "OSMODE")
  12.      oldVars (mapcar 'getvar varLst)
  13.    ) ; end setq
  14. ;    --- Error Trap ---
  15.    (setvar "cmdecho" 0)
  16.    (defun makelay (x)
  17.    (if (not (tblsearch "Layer" x))
  18.        (command "-layer" "m" x "")
  19.    ) ;_  end if
  20.    ) ;_  end defun
  21.    (if    (and
  22.        (setq tpt (getpoint "\nSelect Top Point of Gridline: "))
  23.        (setq bpt (getpoint "\nSelect Base Point of Gridline: "))
  24.    ) ;_  end and
  25.    (progn
  26.        (setq ang (angle tpt bpt))
  27.        (setvar "osmode" 0)
  28.        (makelay "Concrete")
  29.        (setvar "clayer" "Concrete")
  30.        (command "_line"
  31.             (setq llpt (polar tpt (+ ang (/ pi 2)) 1200))
  32.             (polar llpt ang (distance tpt bpt))
  33.             ""
  34.        ) ;_  end command
  35.        (setq l1 (entlast))
  36.        (command "_line"
  37.             (setq lrpt (polar tpt (- ang (/ pi 2)) 1200))
  38.             (polar lrpt ang (distance tpt bpt))
  39.             ""
  40.        ) ;_  end command
  41.        (setq l2 (entlast))
  42.        (command "_chprop" l1 l2 "" "lt" "awthidden2" "")
  43.        (setq l1mid (polar llpt ang (/ (distance tpt bpt) 2)))
  44.        (setq l2mid (polar lrpt ang (/ (distance tpt bpt) 2)))
  45.        (makelay "Dimensions")
  46.        (setvar "clayer" "Dimensions")
  47.        (command "_dimaligned" l1mid l2mid l1mid)
  48.        (alert
  49.        "\nI'm not sure what you would like done with the block...
  50.           \nCheers
  51.            \nLee Mac."
  52.        ) ;_  end alert
  53.    ) ;_  end progn
  54.    (alert "\nProgram Requires Two Selected Points.")
  55.    ) ;_  end if
  56.    (*error* "")
  57. ) ;_  end defun
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 17:00:16 | 显示全部楼层
太棒了,李,你是冠军。唯一的问题是它不会插入块(你知道的,因为对话框会告诉我),我只想将块插入标注下,在标注的中间(只要它不与标注冲突,就可以)。这可能吗?谢谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 17:04:23 | 显示全部楼层
 
我可以补充一下,但块是存储在特定的文件路径下,还是仅存储在ACAD搜索目录中?如果在搜索目录中,我只需要块名,如果在其他地方,我需要块名和完整文件路径来添加到LISP。或者我可以把那部分留白让你填写。
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 17:08:15 | 显示全部楼层
现在没有太多的时间来寻找它,但是如果你留下我需要填写的区域(可能用粗体字,比如在这里添加文件路径/名称),这样我就不用再麻烦你问它放在哪里了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:20 , Processed in 0.381336 second(s), 72 queries .

© 2020-2025 乐筑天下

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