乐筑天下

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

[编程交流] 用于绘制交点的Lisp

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:32:08 | 显示全部楼层 |阅读模式
你好(第一篇文章,可能不是最后一篇)。
 
 
我目前正在编写一段在AutoCAD 2013中使用的代码,这将为我节省大量时间,但我遇到了一个障碍,我对LISP还不够精通,无法解决这个问题(我对我的工作和整个Autodesk产品都很陌生)。
 
 
基本上,我拥有的是一个包含两条相交线(构成一个“X”)和一些文本的块,我们使用这些文本来显示我们网站上各个位置的高程。我需要提取两条线之间交点的位置信息,以便将其输入到我的其余代码中。理想情况下,如果只需点击块就可以获得这些信息,那将是非常棒的。目前,我们必须手动识别点,有时在非常繁忙的图形中,有许多非常接近的交点,这是一个难题。
 
 
谢谢大家,烤箱里的网络饼干是给任何能帮上忙的人的。
回复

使用道具 举报

15

主题

243

帖子

228

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 23:44:20 | 显示全部楼层
您只是希望lisp运行ID命令,还是希望将ID命令的结果生成一个文本字符串,并在选择点后放置?
需要更多关于你需要什么的信息
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:54:31 | 显示全部楼层
很简单,你画了块,所以你知道几何
只需取插入点,使用Polar all done算出ID点距离和角度!
现在,对于棘手的一点,但很容易再次旋转块再次几何答案,你们的点总是一个固定的径向距离。
第二个困难的部分是你重新缩放,很容易计算出ID点。
 
003213nha4beakc8w90ww4.jpg
 
  1. ; very simple example nothing smart no checks
  2. (defun AH:blockpt ( / obj blkins)
  3. (setq obj (entsel))
  4. (setq blkins (assoc 10 (entget (car obj))))
  5. ; do your bit here (setq newpt (polar blkins ang dist))
  6. )
  7. (AH:blockpt)
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:57:19 | 显示全部楼层
 
我需要的是能够点击块上的任何地方,让它抓取并存储块内两条线之间的交点位置。一旦它存储在某个happy变量中,我要对这些坐标做大约一千件其他事情,但代码已经编写好了。问题是,根据块中另一项(文本字符串)的几何形状和位置,插入点并不总是位于相对于这两条线交点的相同位置。我希望块以某种方式存储其中所有单个对象的记录,并且有方法从块中提取此类信息(例如每条线的起点和终点,以便我可以计算它们的交点)。
 
这更有意义吗?
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:05:02 | 显示全部楼层
如果可能,将dwg示例与块一起发布。。。
 
亨里克
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 00:15:20 | 显示全部楼层
如果两条线的交点正在标记点位坡的位置,则块的插入点位于该交点是合乎逻辑的。
 
但有些人的看法不同
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:19:23 | 显示全部楼层
所以,我说谎了,我的问题变了。
 
随附的是LISP当前所在位置的副本,以及示例图形。
 
简短版本:理想情况下,使用此LISP时,让我单击两个块中的每个块,从这些块中获取一个属性(一个文本字符串,转换为浮点),并基于这些浮点(高程点),计算两个块之间的高程变化和等高线的位置,特别是每个块中“X”的中心之间的距离,然后绘制这些等高线的位置。
 
目前存在的问题:LISP需要抓取块中每个X的中心点作为两个比较点。相反,它看起来像是在抓取块中文本的插入点。因此,当它试图绘制等高线的位置时,它处于禁用状态。
 
示例文件:包含我们使用的该块的8个主要变体。它还包含两个最终结果的示例,顶部一个显示了如果它工作,理想情况下会是什么样子(使用更旧、效率更低的LISP版本完成),底部一个显示了它当前的外观。
 
感谢您的帮助。这将为我节省大量的时间。
 
顺便说一句,如果有人也能告诉我如何使用我从文本中提取的浮点值,并修改块的“Z”位置以匹配该浮点值,我会更加激动。
ELL-复制。lsp
样品图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:27:21 | 显示全部楼层
你看过我贴的X是2行吗?它不能移动到块内的新点。它总是相对于插入位置,与你的文本相同!暂时忽略动态块。如果是不同的块,则只需添加其他块的规则列表。
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:33:45 | 显示全部楼层
附件是你的代码,没有真正修改,只是修复插入点。。。
对不起,今天我没有多少空闲时间。
 
 
希望有帮助
亨里克
ell_V1。LSP
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 01:28 , Processed in 1.094802 second(s), 83 queries .

© 2020-2025 乐筑天下

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