乐筑天下

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

[编程交流] 线条宽度的Lisp

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 17:48:51 | 显示全部楼层
**我已经考虑过日常工作**
 
我可以创建一个例程,请求两条线的选择并检索其中一条线的角度,然后可能使用“while”命令,LISP可以连续绘制垂直于其中一条线的线(以用户定义的预定间距)。
 
然后,使用“onseg”设置为“nil”(假设直线无限)的“inters”函数,可以检索垂直直线和另一条选定直线之间的交点。然后,可以使用两点之间的“距离”函数轻松计算垂直距离。
 
然而,我遇到的问题是如何从LISP中提取计算出的距离,并将其保存到文本/excel文件中。
 
但我希望其他人能够处理这个问题(我希望ASMI知道一两件事)
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 17:52:11 | 显示全部楼层
谢谢你的努力,
 
这是一项相当艰巨的任务。这个例程听起来很可靠,如果ASMI赢不了,那么也许我们可以将文本放入文本表中的AutoCad中?
 
让我们从阿斯米那里等到这里,我相信他在附近。
 
谢谢
 
bsimpson公司
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 17:55:02 | 显示全部楼层
在这里搜索batters&vba,一切都完成了,你需要稍微修改一下,但它完全可以实现你想要的垂直于两条不同多段线的直线。
 
找到它“Batter ticks”
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 18:00:00 | 显示全部楼层
嗨,比格尔,
 
我在我的电脑上尝试了这些程序。
其中大约有5个进化。我只设法让一个部分工作,它通过例行程序,并正确地要求选择两行,然后输入步骤。唉,输出是*取消*我不知道Y。
 
bsimpson公司
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 18:04:02 | 显示全部楼层
嗨,李,
 
我发现下面的例程将坐标发送到txt文件,也许我们可以获取代码并使用它来解决您的问题;
 
“然而,我遇到的问题是如何从LISP中提取计算出的距离,并将其保存到文本/excel文件中”。
 
;将旧式多段线顶点坐标导出到文本文件
; mfuccaro@hotmail.com
(defun c:pl2tx(/en ask i a file)
(while(不问)
(setq en(car(entsel)))
(如果en(setq ask(=“POLYLINE”(cdr(assoc 0(entget en 107;)а)))))
)
(setq文件(打开)(GetField“输出文件”)
(strcat(getvar“dwgprefix”)
(substr(getvar“DWGNAME”)1(-strlen(getvar“DWGNAME”))4)
“txt”;文件类型
1) “w”))
(setq i 0 sep“;”);sep=分离器
(while(或(zerop i)a)
(setq a(mapcar的RTO(cdr(assoc 10(entget)(setq en(entnext en \107;)а)а))))
(如果是(写入行(strcat(car a)sep(cadr a)sep(caddr a))文件))
(setq i(1+i))
)
(关闭文件)
(princ(strcat“\n”(itoa(1-i))“导出点”))
(普林斯)
)
 
bsimpson公司
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 18:08:15 | 显示全部楼层
没有技巧文件输出。使用以下子项。
请注意,列表必须包含字符串!!!
 
您必须转换以下内容:
SV距离
  1. '(0 12.5
  2. 10 12.25
  3. 20 12.8
  4. 30 12.05
  5. 30.125 12.00)

为此:
  1. '("0 12.5"
  2. "10 12.25"
  3. "20 12.8"
  4. "30 12.05"
  5. "30.125 12.00")

 
  1. (defun FileWrite (fn lst / fd)
  2. (if (setq fd (open fn "w"))
  3.    (progn
  4.      (foreach itm (layoutlist)
  5.        (write-line itm fd)
  6.      )
  7.      (close fd)
  8.    )
  9. )
  10. )
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 18:10:52 | 显示全部楼层
嗨,CAB,
 
谢谢你的评论,不过我需要整个程序。
 
bsimpson公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:26 , Processed in 0.390799 second(s), 64 queries .

© 2020-2025 乐筑天下

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