乐筑天下

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

[综合讨论] 转换样条曲线

[复制链接]
DJB

5

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-8 11:26:47 | 显示全部楼层 |阅读模式
能否将样条线转换回法线/多段线?
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-8 11:43:31 | 显示全部楼层
也许会爆炸?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-8 11:52:46 | 显示全部楼层
这应该充分回答您的问题:
 
http://rkmcswain.blogspot.com/2007/06/spline-to-polyline.html
回复

使用道具 举报

DJB

5

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-8 12:04:07 | 显示全部楼层
我试过爆炸,但没用
回复

使用道具 举报

DJB

5

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-8 12:10:15 | 显示全部楼层
叶喝彩道。
 
这是该链接上有效的解决方案之一
 
另存为R12DXF-如果将图形另存为R12 DXF格式,则所有样条曲线都将转换为多段线图元。
 
 
再次感谢!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-8 12:23:34 | 显示全部楼层
写得很快,将来可能会有所帮助:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:sp2pl  [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] segs doc spc ss sglen i pt ptlst nPoly[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] segs [b][color=#009900]100[/color][/b][b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  5.        spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] :vlax-true[b][color=RED])[/color][/b]
  7.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b]
  8.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9.              [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"SPLINE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  12.      [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] Obj  [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
  13.                      [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]listp[/color][/b]
  14.                        [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] sglen [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getDistatParam[/color][/b] Obj
  16.                            [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getEndParam[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.                          [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getDistatParam[/color][/b] Obj
  18.                            [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getStartParam[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] segs[b][color=RED])[/color][/b] i [b][color=#009900]-1[/color][/b] ptlst [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b]
  19.        [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getPointatDist[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] sglen [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  20.                    [b][color=RED]([/color][/b][b][color=BLUE]>=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]distance[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getEndPoint[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] sglen[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21.          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ptlst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] pt ptlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  22.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ptlst [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]append[/color][/b]
  23.                           [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  24.                                   [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]trans[/color][/b] x [b][color=#009900]0[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] ptlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.              nPoly [b][color=RED]([/color][/b][b][color=BLUE]vla-addLightweightPolyline[/color][/b] spc
  26.                      [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-variant[/color][/b]
  27.                        [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b]
  28.                          [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b]
  29.                            [b][color=Blue]vlax-vbDouble[/color][/b]
  30.                              [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] ptLst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] ptlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  31.        [b][color=RED]([/color][/b][b][color=BLUE]vla-put-layer[/color][/b] nPoly [b][color=RED]([/color][/b][b][color=BLUE]vla-get-layer[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  32.          [b][color=RED]([/color][/b][b][color=BLUE]vla-put-linetype[/color][/b] nPoly [b][color=RED]([/color][/b][b][color=BLUE]vla-get-linetype[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  33.            [b][color=RED]([/color][/b][b][color=BLUE]vla-put-linetypescale[/color][/b] nPoly [b][color=RED]([/color][/b][b][color=BLUE]vla-get-linetypescale[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34.              [b][color=RED]([/color][/b][b][color=BLUE]vla-put-color[/color][/b] nPoly [b][color=RED]([/color][/b][b][color=BLUE]vla-get-color[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  35.                [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  36.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Splines Selected <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  37. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-8 12:27:21 | 显示全部楼层
JDB非常欢迎你,但真正值得称赞的是R.K.M。我只传递了他出色的建议。很高兴听到你的问题解决了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-1 07:40 , Processed in 0.401554 second(s), 89 queries .

© 2020-2025 乐筑天下

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