乐筑天下

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

[求助]如何把兩條SPLINE焊接成一條SPLINE

[复制链接]

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-25 17:29:00 | 显示全部楼层 |阅读模式
我寫了個程序是處理這個問題的. 但不成功, 希望各位大俠可以做的成功. 謝謝  ! ! !

ht2lxsysrl4.jpg

ht2lxsysrl4.jpg

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

19

主题

79

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2003-11-26 08:29:00 | 显示全部楼层
BDYCAD您好:
看了您的图有点不明白,是不能连接为一条(白线),还是连接后形状变化(绿线)?
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-26 08:53:00 | 显示全部楼层
To LIHUISHUAN
    您好! 我的程序目前執行把這兩條spline焊接在綠色的那條了.原因是10的組碼在(曲線控制點)並不在曲線上. 所以使綠色那條是錯誤的. 是我的程序不好造成的. 理想的效果應是只把這兩條曲線原封不動地焊接成一條的呀. 我總找不到正確的做法. 還請你多多指教呀.
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-26 09:36:00 | 显示全部楼层
两条曲线的连接处会有问题,你的两个曲线不相连,过度之后会产生变化,即使相连的,两个端点的曲率不同,所以也会有偏差
  1. (defun c:test (;|ent1 ent2 |;/ ents1 ents2 lst1 lst2 knot-list controlpoint-list fit-list dxf70
  2.                dxf71 dxf72 dxf73 dxf74)
  3.   (setq ent1 (car (entsel)))
  4.   (setq ent2 (car (entsel)))
  5.   (setq ents1 (entget ent1))
  6.   (setq ents2 (entget ent2))
  7.   (setq knot-list nil)
  8.   (setq lst1 ents1 lst2 ents2)
  9.   ;Get all knot point
  10.   (while (setq lst1 (member (assoc 40 lst1) lst1))
  11.     (setq knot-list (append knot-list (list (car lst1))))
  12.     (setq lst1 (cdr lst1))
  13.   )
  14.   (while (setq lst2 (member (assoc 40 lst2) lst2))
  15.     (setq knot-list (append knot-list (list (car lst2))))
  16.     (setq lst2 (cdr lst2))
  17.   )
  18.   (setq lst1 ents1 lst2 ents2)
  19.   (while (setq lst1 (member (assoc 10 lst1) lst1))
  20.     (setq controlpoint-list (append controlpoint-list (list (car lst1))))
  21.     (setq lst1 (cdr lst1))
  22.   )
  23.   (while (setq lst2 (member (assoc 10 lst2) lst2))
  24.     (setq controlpoint-list (append controlpoint-list (list (car lst2))))
  25.     (setq lst2 (cdr lst2))
  26.   )
  27.   (setq lst1 ents1 lst2 ents2)
  28.   
  29.   (while (setq lst1 (member (assoc 11 lst1) lst1))
  30.     (setq fit-list (append fit-list (list (car lst1))))
  31.     (setq lst1 (cdr lst1))
  32.   )
  33.   (while (setq lst2 (member (assoc 11 lst2) lst2))
  34.     (setq fit-list (append fit-list (list (car lst2))))
  35.     (setq lst2 (cdr lst2))
  36.   )
  37.   (setq dxf70 (cons 70 8))
  38.   (setq dxf71 (cons 71 (+ (cdr (assoc 71 ents1)) (cdr (assoc 71 ents2)))))
  39.   (setq dxf72 (cons 72 (+ (cdr (assoc 72 ents1)) (cdr (assoc 72 ents2)))))
  40.   (setq dxf73 (cons 73 (+ (cdr (assoc 73 ents1)) (cdr (assoc 73 ents2)))))
  41.   (setq dxf74 (cons 74 (+ (cdr (assoc 74 ents1)) (cdr (assoc 74 ents2)))))
  42.   
  43.   (entmake (append
  44.              (list '(0 . "SPLINE"))
  45.              (list (cons 100 "AcDbEntity"))
  46.              (list (cons 100 "AcDbSpline"))
  47.              (list dxf70)
  48.              (list dxf71)
  49.              (list dxf72)
  50.              (list dxf73)
  51.              (list dxf74)
  52.              knot-list
  53.              controlpoint-list
  54.              fit-list
  55.            )
  56.   )
  57. )
回复

使用道具 举报

19

主题

79

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2003-11-26 10:14:00 | 显示全部楼层
to bdycad:
您好!您讲的合成一条比较难办,我只能给您提供一条可能的思路:
按照样条曲线的数学定义,即控制点与曲线的函数关系入手。通过两曲线已知的控制点坐标,
用数学方法拟合成一条,这个方法非常笨拙,如有更好的思路最好不用这个方法!
关于样条曲线的定义,相关书籍上都有介绍。
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-29 14:32:00 | 显示全部楼层
謝謝 Meflying大俠和 Lihuishuan大俠的熱情幫助, 
      目前Meflying的程序存在點問題, 我經過這三天的測試和更改,以經改好了.再在點出來供大家參考.我試過很好用.但如這個圖的曲線就不能用了,還得要meflying兄給我指正這個程序, 謝謝! ! !
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:rvmczxiowfl.lsp 
下载次数:0  文件大小:3.32 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:twm4hhtvp3u.dwg 
下载次数:0  文件大小:27.65 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


msdz3y0lffq.jpg

msdz3y0lffq.jpg

回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-12-1 15:41:00 | 显示全部楼层
不知為什麼當要焊接的曲線被打斷後DXF組碼就缺少了11的組碼? 使這個程序運行失敗, 還請各位大俠指點指點呀. 謝謝了.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 10:13 , Processed in 0.722163 second(s), 74 queries .

© 2020-2025 乐筑天下

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