乐筑天下

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

[编程交流] 测量多段之间的距离

[复制链接]

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-5 20:25:12 | 显示全部楼层
甚至更糟:
205327aleghvuuolevoo4b.png
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:28:10 | 显示全部楼层
如果直线是到多段线之间的最短路径,步骤50也是到上多段线(在最后一种情况下),那么这将是很好的:)但是关于尺寸,它可行吗?
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-5 20:34:09 | 显示全部楼层
因此,您需要一个lisp,它在3种可能性之间交替:
 
[列表=1]
  • 始终垂直于其中一条多段线;或
  • 如果直线的非perp端点之间的距离小于指定的距离,则将be perp替换为另一条多段线;或
  • 如果直线要相互交叉,请使用我在第6篇文章中的方法
    [/列表]
    我理解正确吗?
     
     
    对不起,您想要什么尺寸?指的是50个单元?或者你们想把维度放在这个地方吗?
  • 回复

    使用道具 举报

    1

    主题

    9

    帖子

    8

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 20:36:17 | 显示全部楼层
    如果两条线相互交叉,但始终垂直且“步长50”与第一条多段线,则可以。
    我喜欢把新行的维度放在我的帖子9上。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 20:39:04 | 显示全部楼层
    除非我误解了,否则不妨尝试以下方式:
     
    [code](defunc:test(/d1 d2 d3 e1 e2 ip p1 sp xl)(ifandsetqe1(LM:ssget'”\n选择第一条多段线:“'(“LWDOLYNE”]]))(setqe2(LM:ssget[颜色=栗色]“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progninitget6)(setqd1(getdist]))(prognsetqd3(-d1)e1(ssnamee1 0)e2(vla ename->vla objectssnamee2 0))d2(vlax curve getdistatparame1(vlax get propertyvla get activedocumentvlax get acad object)(if=1(getvar'cvport))“paperspace”modelspace))(while
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 20:43:50 | 显示全部楼层
    或者可能:
    [code](defunc:test(/a1 d1 d2 d3 e1 e2 ip p1 p2 sp xl zv)(ifandsetqe1(LM:ssget'“\n选择第一条多段线:”'(]“)::E:S”((0“LWPOLYLINE”')))qe2(LM:ssget“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progninitget6)(setqd1(getdist]))(prognsetqd3(-d1)e1(ssnamee1 0)e2(vla ename->vla objectssnamee2 0))d2(vlax曲线getdistatparame1(trans'(0.0.0 1.0)1 0t)sp(vlax get propertyvla get activedocumentvlax get acad object)(if=1(getvar'cvport))“paperspace”modelspace))(while
    回复

    使用道具 举报

    1

    主题

    9

    帖子

    8

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 20:44:09 | 显示全部楼层
    你是李·麦克!这就是我的意思,但如何像我在帖子#9中展示的那样添加维度。(如L=124.20m)
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 20:50:06 | 显示全部楼层
     
    为凤凰干杯,见16号帖子
    回复

    使用道具 举报

    1

    主题

    9

    帖子

    8

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 20:50:35 | 显示全部楼层
    这又像圣诞节了,送给我的礼物是:震惊:非常感谢!!!
    但是,如何将所有新的线条和尺寸放在图层“尺寸”中,并使它们变成红色和虚线2。
    当多段线相互交叉时,是否可以编写if语句。使线条为黄色,尺寸为负数(见下图)。那太好了!!!
     
    205328pnwyftzf9twctlh2.jpg
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 20:53:42 | 显示全部楼层
    不客气,你让我心情很好
     
    属性更改很简单,交叉多段线的测试并不那么简单:
    [code](defunc:test(/a1 d1 d2 d3 e1 e2 ip p1 p2 sp xl zv)(ifandsetqe1(LM:ssget'“\n选择第一条多段线:”'(]“)::E:S”((0“LWPOLYLINE”')))qe2(LM:ssget“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progninitget6)(setqd1(getdist]))(prognsetqd3(-d1)e1(ssnamee1 0)e2([color=B
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-12 00:57 , Processed in 0.446039 second(s), 73 queries .

    © 2020-2025 乐筑天下

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