乐筑天下

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

[编程交流] 绘制平分线

[复制链接]

96

主题

351

帖子

62

银币

中流砥柱

Rank: 25

铜币
692
发表于 2022-7-5 16:20:00 | 显示全部楼层 |阅读模式
172002y7b0n3bum13g7zuk.png
 
亲爱的大家。
 
选择2条线(可能是2段pline)、水平线或角度线
输入“平分线数”
绘制平分线
 
有什么建议吗?对不起,我的英语,我需要一些几何形状或代码。。。。
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 16:23:35 | 显示全部楼层
您可以使用特殊的LISP程序或使用AutoCAD的参数化功能来实现。
 
这是一种使用参数的方法。
 
白线之间的角度为ANG1。最右边的白线和左边下一条红线之间的角度为ANG2=ANG1/3。3可以根据需要更改为其他数字。其他尺寸设置为ANG2。
 
172004lggxlfgxg16xw4jz.jpg
 
172005akxx69vtzxs69kk6.jpg
此处ANG2=ANG1/4
172006xvik4izk51icvcsz.jpg
 
你可以对水平线做类似的事情。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:27:10 | 显示全部楼层
对于两条线,我将使用这种方法注意角度差异,手动连接端点,然后进行3除,然后使用节点绘制捕捉线。Lisp程序也可以这样做,我想它已经存在了。
172008ml7jrl3q7ckkkfd8.png
回复

使用道具 举报

96

主题

351

帖子

62

银币

中流砥柱

Rank: 25

铜币
692
发表于 2022-7-5 16:31:09 | 显示全部楼层
 
尊敬的lrm:
但低版本无参数
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 16:35:21 | 显示全部楼层
比格尔,你概述的方法没有将角度分成3等分。
 
下面是使用您的方法得到的结果示例。
172009f184f686vc4c6ow1.jpg
 
事实上,使用几何构造技术是不可能完成的任务。
 
https://en.wikipedia.org/wiki/Angle_trisection  
 
用户可以标注两条线之间的角度,将该值除以3,然后使用该角度构建三等分线。
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 16:37:30 | 显示全部楼层
你可以画一条弧,然后用除法。可能需要一点Lisp程序的工作。。。
 

                               
登录/注册后可看大图
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 16:39:30 | 显示全部楼层
BKT,那会有用的。干得好
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 16:43:31 | 显示全部楼层
谢谢,Irm!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:48:06 | 显示全部楼层
Lrm我在看平行线而不是角度问题,很明显,两条非平行线将是下一个两端间距相等的问题。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 16:50:17 | 显示全部楼层
有趣的项目,
 
更新了一些错误捕获
 
  1. [b][color=BLACK]([/color][/b]defun c:bisect [b][color=FUCHSIA]([/color][/b]/ e1 ss e2 d1 p10 p11 d2 p20 p21 tl p30 p31
  2.                   a ad q a1 s1 p1 a2 s2 p2
  3.                   vp sa ea ia i an[b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]defun gc:clockwise-p [b][color=NAVY]([/color][/b]p1 p2 p3[b][color=NAVY])[/color][/b]  [color=#8b4513];;;GILE[/color]
  5.    [b][color=NAVY]([/color][/b]< [b][color=MAROON]([/color][/b]sin [b][color=GREEN]([/color][/b]- [b][color=BLUE]([/color][/b]angle p1 p3[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]angle p1 p2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] -1e-14[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not e1[b][color=NAVY])[/color][/b]
  8.         [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect 2 LINEs..."[/color][b][color=MAROON])[/color][/b]
  9.              [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  10.              [b][color=MAROON]([/color][/b]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 2[b][color=MAROON])[/color][/b]
  11.              [b][color=MAROON]([/color][/b]setq e1 [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b]
  12.                    e2 [b][color=GREEN]([/color][/b]ssname ss 1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  13. [b][color=FUCHSIA]([/color][/b]redraw e1 3[b][color=FUCHSIA])[/color][/b]
  14. [b][color=FUCHSIA]([/color][/b]redraw e2 3[b][color=FUCHSIA])[/color][/b]
  15. [b][color=FUCHSIA]([/color][/b]setq d1 [b][color=NAVY]([/color][/b]entget e1[b][color=NAVY])[/color][/b]
  16.        p10 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 10 d1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  17.        p11 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 11 d1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  18. [b][color=FUCHSIA]([/color][/b]setq d2 [b][color=NAVY]([/color][/b]entget e2[b][color=NAVY])[/color][/b]
  19.        p20 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 10 d2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  20.        p21 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 11 d2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  21. [b][color=FUCHSIA]([/color][/b]foreach p '[b][color=NAVY]([/color][/b]p10 p11 p20 p21[b][color=NAVY])[/color][/b]
  22.    [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]member [b][color=BLUE]([/color][/b]eval p[b][color=BLUE])[/color][/b] tl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  23.        [b][color=MAROON]([/color][/b]setq tl [b][color=GREEN]([/color][/b]cons [b][color=BLUE]([/color][/b]eval p[b][color=BLUE])[/color][/b] tl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  24. [b][color=FUCHSIA]([/color][/b]cond [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]= [b][color=GREEN]([/color][/b]length tl[b][color=GREEN])[/color][/b] 2[b][color=MAROON])[/color][/b]
  25.         [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"Overlaying LINEs Cannot Be Bisected"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  26.        [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]or [b][color=GREEN]([/color][/b]< [b][color=BLUE]([/color][/b]distance p10 p11[b][color=BLUE])[/color][/b] 1e-8[b][color=GREEN])[/color][/b]
  27.             [b][color=GREEN]([/color][/b]< [b][color=BLUE]([/color][/b]distance p20 p21[b][color=BLUE])[/color][/b] 1e-8[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  28.         [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"Both LINEs Must Have Length"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  29.        [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]inters p10 p11 p20 p21[b][color=GREEN])[/color][/b]
  30.              [b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]length tl[b][color=BLUE])[/color][/b] 4[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  31.         [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"Crossing LINEs Cannot Be Bisected"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  32.        [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]inters p10 p11 p20 p21 nil[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  33.         [b][color=MAROON]([/color][/b]setq a [color=#2f4f4f]"Linear"[/color][b][color=MAROON])[/color][/b]
  34.         [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"Parrellel LINEs Must Be Linear"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  35.       [b][color=NAVY]([/color][/b]T [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]length tl[b][color=BLUE])[/color][/b] 3[b][color=GREEN])[/color][/b]
  36.              [b][color=GREEN]([/color][/b]setq ad [color=#2f4f4f]"Angular"[/color][b][color=GREEN])[/color][/b]
  37.              [b][color=GREEN]([/color][/b]setq ad [color=#2f4f4f]"Linear"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  38.          [b][color=MAROON]([/color][/b]initget [color=#2f4f4f]"Angular Linear"[/color][b][color=MAROON])[/color][/b]
  39.          [b][color=MAROON]([/color][/b]setq a [b][color=GREEN]([/color][/b]getkword [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"\nBisector Type - Angular/Linear <"[/color] ad [color=#2f4f4f]">:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  40.          [b][color=MAROON]([/color][/b]or a [b][color=GREEN]([/color][/b]setq a ad[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  41. [b][color=FUCHSIA]([/color][/b]if a
  42.    [b][color=NAVY]([/color][/b]progn
  43.      [b][color=MAROON]([/color][/b]initget 7[b][color=MAROON])[/color][/b]
  44.      [b][color=MAROON]([/color][/b]setq q [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nNumber Of Bisector Lines:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  45.      [b][color=MAROON]([/color][/b]cond [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]= a [color=#2f4f4f]"Linear"[/color][b][color=BLUE])[/color][/b]
  46.             [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]inters p10 p20 p11 p21[b][color=RED])[/color][/b]
  47.                 [b][color=RED]([/color][/b]setq p30 p21
  48.                       p31 p20[b][color=RED])[/color][/b]
  49.                 [b][color=RED]([/color][/b]setq p30 p20
  50.                       p31 p21[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  51.             [b][color=BLUE]([/color][/b]setq a1 [b][color=RED]([/color][/b]angle p10 p30[b][color=RED])[/color][/b]
  52.                   s1 [b][color=RED]([/color][/b]/ [b][color=PURPLE]([/color][/b]distance p10 p30[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]+ q 1[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  53.                   p1 [b][color=RED]([/color][/b]polar p10 a1 s1[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  54.             [b][color=BLUE]([/color][/b]setq a2 [b][color=RED]([/color][/b]angle p11 p31[b][color=RED])[/color][/b]
  55.                   s2 [b][color=RED]([/color][/b]/ [b][color=PURPLE]([/color][/b]distance p11 p31[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]+ q 1[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  56.                   p2 [b][color=RED]([/color][/b]polar p11 a2 s2[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  57.             [b][color=BLUE]([/color][/b]grdraw p10 p10 2[b][color=BLUE])[/color][/b]
  58.             [b][color=BLUE]([/color][/b]grdraw p11 p11 3[b][color=BLUE])[/color][/b]
  59.             [b][color=BLUE]([/color][/b]repeat q
  60.               [b][color=RED]([/color][/b]entmake [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=TEAL])[/color][/b][b][color=TEAL]([/color][/b]cons 62 1[b][color=TEAL])[/color][/b][b][color=TEAL]([/color][/b]cons 10 p1[b][color=TEAL])[/color][/b][b][color=TEAL]([/color][/b]cons 11 p2[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  61.               [b][color=RED]([/color][/b]setq p1 [b][color=PURPLE]([/color][/b]polar p1 a1 s1[b][color=PURPLE])[/color][/b]
  62.                     p2 [b][color=PURPLE]([/color][/b]polar p2 a2 s2[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  63.             [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]= a [color=#2f4f4f]"Angular"[/color][b][color=BLUE])[/color][/b]
  64.              [b][color=BLUE]([/color][/b]cond [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]equal p10 p20 1e-8[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq vp p10 p1 p11 p2 p21[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  65.                    [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]equal p10 p21 1e-8[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq vp p10 p1 p11 p2 p20[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  66.                    [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]equal p11 p20 1e-8[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq vp p11 p1 p10 p2 p21[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  67.                    [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]equal p11 p21 1e-8[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq vp p11 p1 p10 p2 p20[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  68.                    [b][color=RED]([/color][/b]T
  69.                     [b][color=PURPLE]([/color][/b]setq vp [b][color=TEAL]([/color][/b]inters p10 p11 p20 p21 nil[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  70.                     [b][color=PURPLE]([/color][/b]setq p1 [b][color=TEAL]([/color][/b]if [b][color=OLIVE]([/color][/b]< [b][color=GRAY]([/color][/b]distance vp p10[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]distance vp p11[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] p11[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  71.                     [b][color=PURPLE]([/color][/b]setq p2 [b][color=TEAL]([/color][/b]if [b][color=OLIVE]([/color][/b]< [b][color=GRAY]([/color][/b]distance vp p20[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]distance vp p21[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] p21[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  72.             [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]gc:clockwise-p p1 vp p2[b][color=RED])[/color][/b]
  73.                 [b][color=RED]([/color][/b]setq sa [b][color=PURPLE]([/color][/b]angle vp p1[b][color=PURPLE])[/color][/b]
  74.                       ea [b][color=PURPLE]([/color][/b]angle vp p2[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  75.                 [b][color=RED]([/color][/b]setq ea [b][color=PURPLE]([/color][/b]angle vp p1[b][color=PURPLE])[/color][/b]
  76.                       sa [b][color=PURPLE]([/color][/b]angle vp p2[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  77.             [b][color=BLUE]([/color][/b]setq ia [b][color=RED]([/color][/b]if [b][color=PURPLE]([/color][/b]> sa ea[b][color=PURPLE])[/color][/b]
  78.                          [b][color=PURPLE]([/color][/b]+ [b][color=TEAL]([/color][/b]- [b][color=OLIVE]([/color][/b]* 2 pi[b][color=OLIVE])[/color][/b] sa[b][color=TEAL])[/color][/b] ea[b][color=PURPLE])[/color][/b]
  79.                          [b][color=PURPLE]([/color][/b]- ea sa[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  80.                   an [b][color=RED]([/color][/b]/ ia [b][color=PURPLE]([/color][/b]1+ q[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  81.                    i 1[b][color=BLUE])[/color][/b]
  82.             [b][color=BLUE]([/color][/b]repeat q
  83.               [b][color=RED]([/color][/b]entmake [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=TEAL])[/color][/b][b][color=TEAL]([/color][/b]cons 62 1[b][color=TEAL])[/color][/b]
  84.                              [b][color=TEAL]([/color][/b]cons 10 vp[b][color=TEAL])[/color][/b]
  85.                              [b][color=TEAL]([/color][/b]cons 11 [b][color=OLIVE]([/color][/b]polar vp [b][color=GRAY]([/color][/b]+ sa [b][color=AQUA]([/color][/b]* an i[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b]
  86.                                          [b][color=GRAY]([/color][/b]* 0.5 [b][color=AQUA]([/color][/b]+ [b][color=LIME]([/color][/b]distance vp p2[b][color=LIME])[/color][/b]
  87.                                                    [b][color=LIME]([/color][/b]distance vp p1[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  88.               [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1+ i[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  89. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
没有经过彻底测试,但似乎做得很好
 
您需要将首选项添加到层、线型等的(entmake)调用中
 
-大卫
 
gc:顺时针-p:credit Gile@沼泽
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 18:30 , Processed in 1.278647 second(s), 75 queries .

© 2020-2025 乐筑天下

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