乐筑天下

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

[编程交流] 在中间距离画线

[复制链接]

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 18:01:07 | 显示全部楼层
 
不同意你的观点
这个程序在任何情况下都适用于我
每条线(平行或不平行)
仅在A2005上测试
顺便说一句,丹尼尔的日常工作对我来说很有效
也很好
下次我建议你附上
一张你的问题示例图
 
~'J'~
回复

使用道具 举报

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-5 18:04:18 | 显示全部楼层
嗨,胖子
SEANT POST附带的图片解释了这个问题
你的路线从2条线的中点创建一条线
第一条线连接在第一条给定线的端点和第二条给定线的端点之间,第二条线连接在第二条给定线的端点和第一条给定线的端点之间
请查看SEANT post
很抱歉
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 18:08:34 | 显示全部楼层
 
哦,我的错
你说得对,对不起
请参阅我的第一个线程中的修订代码
 
~'J'~
回复

使用道具 举报

9

主题

49

帖子

41

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 18:12:04 | 显示全部楼层
另一种观点。。。
 
两条连续白线上的点与绿线的距离相同。。。。
 
新年快乐!
普尔泽莫
182806po77us1jj7575a65.jpg
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 18:13:36 | 显示全部楼层
 
嗨,朋友,很高兴你回来
你知道我是如此愚蠢,更好了
给我发电子邮件,附上样品图纸和
给老白痴加些解释
 
新年快乐!
 
~'J'~
回复

使用道具 举报

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-5 18:16:40 | 显示全部楼层
嗨freind Fatty
祝你和大家新年快乐
如果两条线不平行,routin只能在两条线的交点上画一个圆,如果平行,可以将其打断以使其变短
回复

使用道具 举报

9

主题

49

帖子

41

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 18:21:04 | 显示全部楼层
你好
我想我们都应该等莫泰-兹说出他想要什么。。。
在我看来,他只需要使用2条线(实线或延伸后)的横截面点作为角度顶点的xline/bisection。
 
 
佩菲
P、 S感谢“邻居”的祝福:眨眼:
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-5 18:22:17 | 显示全部楼层
这里是我的lisp,用于在两个对象的中间距离绘制多段线
 
  1. (defun C:MPL (/ adoc *error* crvs eps dL pts pt1 pt2 ptc n osm)
  2. (defun *error* (msg)
  3.    (vla-Regen adoc acActiveViewport)
  4.    (vla-EndUndoMark adoc)
  5.    (setvar "OSMODE" osm)
  6. ) ;_ end of defun
  7. (vl-load-com)
  8. (setq osm (getvar "OSMODE"))
  9. (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  10. (vla-StartUndoMark adoc)
  11. (setvar "CMDECHO" 0)
  12. (setq crvs (mapcar '(lambda (y / en)
  13.                        (setq en
  14.                               (car (entsel (strcat "\nSelect " y " edge: ")))
  15.                        ) ;_ end of setq
  16.                        (if en
  17.                          (redraw en 3)
  18.                        ) ;_ end of if
  19.                        en
  20.                      ) ;_ end of lambda
  21.                     '("first" "second")
  22.             ) ;_ end of mapcar
  23. ) ;_ end of setq
  24. (if (vl-some 'null crvs)
  25.    (alert "Shortage!!!")
  26.    (progn
  27.      (mapcar '(lambda (x) (redraw x 4)) crvs)
  28.      (setq crvs (mapcar 'vlax-ename->vla-object crvs))
  29.      (if (apply
  30.            'and
  31.            (mapcar
  32.              '(lambda (x)
  33.                 (wcmatch (strcase (vla-get-ObjectName x)) "*LINE,ARC")
  34.               ) ;_ end of lambda
  35.              crvs
  36.            ) ;_ end of mapcar
  37.          ) ;_ end of apply
  38.        (progn
  39.          (setq eps (mapcar '(lambda (x)
  40.                               (- (vlax-curve-getEndParam x)
  41.                                  (vlax-curve-getStartParam x)
  42.                               ) ;_ end of -
  43.                             ) ;_ end of lambda
  44.                            crvs
  45.                    ) ;_ end of mapcar
  46.          ) ;_ end of setq
  47.          (initget 6)
  48.          (setq dL
  49.                 (if
  50.                   (setq dL (getint "\nQuantity of reference points <100>: "))
  51.                    dL
  52.                    100
  53.                 ) ;_ end of if
  54.          ) ;_ end of setq
  55.          (setq pts (mapcar '(lambda (dp crv / sps pr)
  56.                               (setq n 0)
  57.                               (while (< n dl)
  58.                                 (setq pr  (* (/ dp dl) n)
  59.                                       pt  (vlax-curve-getPointAtParam crv pr)
  60.                                       sps (append sps (list pt))
  61.                                       n   (1+ n)
  62.                                 ) ;_ end of setq
  63.                               ) ;_ end of while
  64.                               sps
  65.                             ) ;_ end of lambda
  66.                            eps
  67.                            crvs
  68.                    ) ;_ end of mapcar
  69.          ) ;_ end of setq
  70.          (setq pts
  71.                 (mapcar
  72.                   '(lambda (pt pr crv)
  73.                      (append pt
  74.                              (list (vlax-curve-getPointAtParam crv pr))
  75.                      ) ;_ end of append
  76.                    ) ;_ end of lambda
  77.                   pts
  78.                   eps
  79.                   crvs
  80.                 ) ;_ end of mapcar
  81.          ) ;_ end of setq
  82.          (setq pts
  83.                 (mapcar
  84.                   '(lambda (crv pt)
  85.                      (vl-sort pt
  86.                               '(lambda (t1 t2)
  87.                                  (< (vlax-curve-getDistAtParam
  88.                                       crv
  89.                                       (vlax-curve-getParamAtPoint crv t1)
  90.                                     ) ;_ end of vlax-curve-getDistAtParam
  91.                                     (vlax-curve-getDistAtParam
  92.                                       crv
  93.                                       (vlax-curve-getParamAtPoint crv t2)
  94.                                     ) ;_ end of vlax-curve-getDistAtParam
  95.                                  ) ;_ end of <
  96.                                ) ;_ end of lambda
  97.                      ) ;_ end of vl-sort
  98.                    ) ;_ end of lambda
  99.                   crvs
  100.                   pts
  101.                 ) ;_ end of mapcar
  102.          ) ;_ end of setq
  103.          (setq
  104.            pts (mapcar
  105.                  '(lambda (x) (mapcar '(lambda (y) (trans y 0 1)) x))
  106.                  pts
  107.                ) ;_ end of mapcar
  108.          ) ;_ end of setq
  109.          (setq pt1 (car pts)
  110.                pt2 (cadr pts)
  111.          ) ;_ end of setq
  112.          (if (> (+ (distance (car pt1) (car pt2))
  113.                    (distance (last pt1) (last pt2))
  114.                 ) ;_ end of +
  115.                 (+ (distance (car pt1) (last pt2))
  116.                    (distance (last pt1) (car pt2))
  117.                 ) ;_ end of +
  118.              ) ;_ end of >
  119.            (setq pt2 (reverse pt2))
  120.          ) ;_ end of if
  121.          (setq
  122.            ptc (mapcar
  123.                  '(lambda (t1 t2)
  124.                     (polar t1 (angle t1 t2) (* 0.5 (distance t1 t2)))
  125.                   ) ;_ end of lambda
  126.                  pt1
  127.                  pt2
  128.                ) ;_ end of mapcar
  129.          ) ;_ end of setq
  130.          (setvar "OSMODE" 0)
  131.          (vl-cmdf "_.PLINE" (car ptc) "_W" 0 0)
  132.          (foreach pt (cdr ptc) (vl-cmdf pt))
  133.          (vl-cmdf "")
  134.        ) ;_ end of progn
  135.      ) ;_ end of if
  136.    ) ;_ end of progn
  137. ) ;_if apply
  138. (setvar "OSMODE" osm)
  139. (vla-EndUndoMark adoc)
  140. (princ)
  141. ) ;_ end of defun

作为边,应选择所有多段线、样条线、圆弧、直线
2、未分析曲线交叉
3.参考点数量-平均线接收曲线在多少部分被破坏
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 18:27:04 | 显示全部楼层
 
我在那里发现了一只小虫子
查看我在原始线程中修改的例程
如果再次出现问题,请告诉我。。。
也谢谢你
 
~'J'~
回复

使用道具 举报

0

主题

9

帖子

11

银币

限制会员

铜币
-1
发表于 2022-7-5 18:30:02 | 显示全部楼层
欢迎VVA
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 08:25 , Processed in 0.425585 second(s), 72 queries .

© 2020-2025 乐筑天下

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