乐筑天下

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

[编程交流] Lisp文件请求

[复制链接]

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:26:02 | 显示全部楼层 |阅读模式
我喜欢挑战,但有时我想尝试一些超出我专业水平的事情。因此,如果有人喜欢挑战,愿意帮助我,我有一个请求。我在civil Drawing工作,在我工作的公司,出于成本原因,我们不都有civil 3d。这是可以理解的,但我一直在寻找使用标准AutoCAD的方法,以使我的工作更轻松。考虑到这一点,我知道Civil 3d会做我想做的事情,但我没有这个选择。
 
当我绘制生活污水管道的平面图和剖面图时,我在剖面图中标记管道,如下所示:
 
0.014斜率下8“P.V.C.的304 L.F
 
我希望能够做的是,从第一个人孔中选取流线,然后从上游人孔中选取流线,并将上面的文本字符串放置在剖面中的管道上方。我希望文本是dtext,是底部中心对齐,并放置在剖面中管道顶线的中点。我知道AutoCAD可以计算l.f.,即两个拾取点的“x”距离。坡度可能也可以计算出来,但轮廓是在一个夸张的y比例,所以如果这是不可能的,一个可以编辑的占位符将是很好的。我附上了一个dwg的文本应该如何看的例子。无论是谁解决这个问题,如果你需要更多信息或我不清楚的东西,让我知道。
轮廓图纸
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 12:32:21 | 显示全部楼层
一个建议。。
 
如果管道的顶线能够准确表示LF(x距离),则用户可以仅选择这条线,并提供y比例放大。通过选定的线条和夸张,例程将知道LF、坡度以及放置文本的确切位置和方向。(也可以询问用户文字高度)。它可以提供除管径和类型之外的所有内容,但可以使用X“P.V.C.作为默认值。
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:33:01 | 显示全部楼层
然而,在我的剖面中绘制管线的方式是正确的,这些管线被修剪回人孔的外边缘。人孔的直径通常相同。在配置文件中,因此例程必须计算并添加一些额外内容来弥补差异。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 12:35:55 | 显示全部楼层
做一些类似的事情很容易,只是一步一步地分解
 
输入垂直比例
输入水平标尺
选取pit1 c/l/inv点
选取pit2 c/l/inv点
拾取顶部管道
剩下的只是数学,考虑到了尺度
 
听你的话,我喜欢挑战
 
(setq pt1(Getpoint“pick point 1”))
(setq pt2(Getpoint“pick point 2”))
(setq x1(car pt1))x pt1的值
(setq y1(cadr pt1))pt1的y值
 
继续你开始了
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:39:03 | 显示全部楼层
好的,谢谢你的开始,但当我说我喜欢挑战时,我也提到了这是我上面。我会写剧本(谁不会呢?),编写工具栏按钮的代码,了解一些diesel表达式,但我不会编写lisp文件。所以,也许我要求的太多了,如果是的话,我很抱歉。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:42:39 | 显示全部楼层
刚刚注意到这个线程-请求似乎不太糟糕-但我无法查看只有04年在我的支配下的图纸-可以上传一个04年兼容的图纸吗
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:46:19 | 显示全部楼层
感谢您的回复,是的,我已经将其更改为您可以查看的位置。如果您在观看时有任何问题,请告诉我。
Profile 04格式。图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:48:26 | 显示全部楼层
也许是这样的开始:
 
[code](defun c:pipetxt(/*error*vlst ovar diam lEnt lObj lLen lAng lMid)(vl load com)(defun*error*(msg)(if ovar(mapcar'setvar vlst ovar))(if tObj(entdel tObj))(if(not(member msg'(“Function cancelled”“quit/exit abort”))(princ(strcat”\n错误:“(strcase msg))(princ))(setq vlst'(“OSMODE”“CLAYER”)ovar(mapcar'getvar vlst))(setvar“OSMODE”0()(或(tblsearch“LAYER”“TXT-100”)(vla add(vla get layers(vla get ActiveDocument(vlax get acad object)))“TXT-100”)(或pip:dia(setq pip:dia)(initget 6)(setq diam(getreal(strcat”\nSepify Pipeline vla object lEnt的直径)lLen(vla get length lObj)lAng(angle(vlax curve getStartPoint lObj)(vlax curve getEndPoint lObj))lMid(vlax curve getPointatParam lObj(/(vlax curve getEndParam lObj)2.0))(if(and(>lAng 0)(
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:52:15 | 显示全部楼层
这是一个很好的开始。我不知道如何解决这个问题,所以我会告诉你需要做的调整,看看是否可以做到。只有3件事;首先,长度是线的总长度,我只需要人孔中心到人孔中心的“x”距离,而不是线的末端。其次,这个lisp中的斜率给出了直线的xy角。我需要在“y/x=斜率”中上升。第三也是最后一点,在我的其他图纸中,文字高度太高。我不知道文字高度有什么问题,因为它在我上传的图纸中效果很好。
 
如果这有帮助的话,我在上面说过,我们的人孔在所有图纸中都是相同的尺寸,你可以把额外的镜头添加到计算的“x”距离?
 
还有,一个常见的错误,我自己做的,我已经修复了,但是,戴。符号是%%C而不是%%D.:wink:
 
非常感谢您对李的帮助,并期待着最终的产品!正如我上面所说的,如果你需要我提供更多信息,尽管问。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:57:37 | 显示全部楼层
 
谢谢斯特莱德——在阅读了之前的几篇帖子后,我知道还有一些事情需要改进——但我想我应该先从一些具体的事情开始
 
 
您是否仍然希望仅选择直线,并添加“x”距离?(这样会使LISP更稳定)。
 
 
这应该很容易实现。
 
 
我使用的文字高度只是从您正在处理的任何图形中的“TEXTSIZE”变量中检索出来的,但我可以根据您的需要修改它。
 
 
巧合的是,就在你发布回复之前,我注意到了这一点——我在原来的帖子中修改了代码——但仍然感谢你指出这一点。
 
 
干杯
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 06:18 , Processed in 0.383191 second(s), 83 queries .

© 2020-2025 乐筑天下

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