乐筑天下

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

[编程交流] 领导Lisp程序

[复制链接]

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 10:21:08 | 显示全部楼层 |阅读模式
你好
 
我有Lisp程序的这一部分,可以成为领导者。
我使用ACAD 2008/2010。它对我来说是可行的,但当我在办公室的另一个桌面上执行它时,它就不起作用了。
它的行为类似于,它请求lisp中的三个点,但在即将输入文本时停止。
为什么它对我有效,但对他无效。我们使用相同的台式机,相同的ACAD。真奇怪。设置中是否有一些选项可以阻止领导者成功执行?
 
代码如下:
  1. (defun leader(/ p1 p2 p3)
  2. (setq p1 (getpoint "\nstart point: ")
  3. p2 (getpoint p1 "\nsecond point: ")
  4. )
  5. (grdraw p1 p2 1 1)
  6. (setq p3 (getpoint p2 "\ntext: "))
  7. (command "_leader" p1 p2 p3 "" "" "" "")
  8. (redraw)
  9. )
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

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

铜币
275
发表于 2022-7-6 10:25:36 | 显示全部楼层
您最好将引线的设置更改为2点,或者更好地将其包含在代码中,以使其在所有其他Cad引线设置中正常运行。
 
祝你好运
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:33:34 | 显示全部楼层
根据您发布的代码,这*应该*就是您所需要的:
 
  1. (defun c:FOO (/ p1 p2)
  2. (if (setq p1 (getpoint "\n  >>  Specify Start Point: "))
  3.    (progn
  4.      (setq p2 (getpoint p1 "\n  >>  Specify End Point: "))
  5.      (command "._leader" p1 p2 "" pause)))
  6. (princ))
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

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

铜币
275
发表于 2022-7-6 10:35:45 | 显示全部楼层
干得好Renderman。
 
但例程的名称是cad的标准命令之一。加载例程时,cad将从cad的命令开始
根据我前面提到的,该例程还将首先考虑Cad的命令设置,因此如果Qleader的点数被切换到无限制
因此qleader根本不会停止插入文本。
 
如果你想用的话,这是我的。
  1. (defun c:LEAD (/ p1 p2)
  2. (if (and (setq p1 (getpoint "\n Specify Start Point: "))
  3.           (setq p2 (getpoint p1 "\n Specify End Point: "))
  4.    )
  5. (command "._leader" p1 p2 "" pause))
  6. (princ)
  7. )

 
谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:39:16 | 显示全部楼层
 
 
谢谢你指出这一点,这是我的疏忽。代码已在我之前的帖子中更正。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:42:58 | 显示全部楼层
不确定您是否需要文本,但我的条目:
 
  1. (defun c:test ( / p1 p2 ) (vl-load-com)
  2. (if (and (setq p1 (getpoint "\nPick First Point: "))
  3.           (setq p2 (getpoint "\nPick Next Point: " p1))
  4.      )
  5.    (vlax-invoke
  6.      (vlax-get (vla-get-ActiveDocument (vlax-get-acad-object))
  7.        (if (= 1 (getvar 'CVPORT)) 'PaperSpace 'ModelSpace)
  8.      )
  9.      'AddMLeader (append p1 p2) 0
  10.    )
  11. )
  12. (princ)
  13. )
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:49:21 | 显示全部楼层
 
李,在这里,领导者的“尾巴”总是向左,即使领导者的坡度向右。
我想我把事情搞砸了,还是程序中有错误?
史蒂夫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:54:46 | 显示全部楼层
 
这是一个非常简单的代码Steve,只是用来创建leader对象的。如果用户要走这条路线,他们必须修改引线以添加文本/更改狗腿方向等。我可以添加更多代码,但我会先看看OP希望以哪种方式继续。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 10:57:46 | 显示全部楼层
嗯,李。。。这将创建一个多重引线。OP想要一个老式的QLeader。并不是说我不喜欢MLEADER,而是有些人想要旧的类型,因为有些功能不容易使用MLEADER。如果要通过vla AddLeader创建引线实体,首先需要创建多行文字实体,然后将其用作AddLeader方法的参数。或者随后将其添加到引线的注释属性中。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:01:04 | 显示全部楼层
哦,对了,那就忽略我的帖子吧
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-3 18:02 , Processed in 0.870263 second(s), 72 queries .

© 2020-2025 乐筑天下

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