找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1142|回复: 16

[其他]:大家讨论一下怎么实现?

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-7-5 19:11:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
A转到B
已知A 的所有线 和  B中的轴线


假定A中的线都为直线,简单一点

我的意思是把图中的一个东西,打一下弯(变为b)已知:原物体和"要打多弯".
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8个

财富等级: 恭喜发财

发表于 2003-7-6 09:17:23 | 显示全部楼层

这个东西比较有趣

这个东西比较有趣,大也应该是中心的红线的长度不变,外面的线拉长,内圈的线,压短
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-8 18:09:30 | 显示全部楼层
我编程做过直管弯曲的图形,但两端还保留直线(直管)。
能否说说你的具体要求和条件?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-8 19:08:11 | 显示全部楼层
可以把A 的轴线看做是B的轴线弧段的弦,
至于"要打多弯"也就是弧段的拱高了。
先写这么多,后面兄弟的继续讨论!!!
:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2003-7-9 19:50:56 | 显示全部楼层
最初由 lsjjm 发布
[B]我编程做过直管弯曲的图形,但两端还保留直线(直管)。
能否说说你的具体要求和条件? [/B]


我不要三唯的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-10 13:26:40 | 显示全部楼层
我那个也不是三唯的呀!说说你的具体要求和条件, 看能不能帮上你?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 16个

财富等级: 恭喜发财

发表于 2003-7-10 14:54:56 | 显示全部楼层
中间不分段,倒是还可以,我成功试出来了。
用spline样条曲线命令,绘出直线,取起点、中点和终点。然后,用stretch拉伸,从左到右框选直线中点,可以达到你的目标。
至于其它编程,我想不大可能解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2003-7-13 10:19:46 | 显示全部楼层
最初由 lsjjm 发布
[B]我那个也不是三唯的呀!说说你的具体要求和条件, 看能不能帮上你? [/B]


1.选择物体:选直线部分的白线.
2.选择原始轴线:选直线部分的红线
3:选要转到的弧轴线:选弧的红线.

转过去.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-13 14:09:28 | 显示全部楼层
好像思路上没有什么困难的,就是求定位点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-15 16:15:40 | 显示全部楼层
最初由 aeo 发布
[B]

1.选择物体:选直线部分的白线.
2.选择原始轴线:选直线部分的红线
3:选要转到的弧轴线:选... [/B]


当我看到‘转过去’三个字的时候,实在是忍不住要喷饭,忒像三句半了!



贴了那么多天,没看到一行代码.
知道你是高手,也不至于要喷饭.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-15 23:36:53 | 显示全部楼层
1 交点垂直直线
2 对应关系不变(窗墙窗)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-16 16:06:14 | 显示全部楼层
[最初由 aeo 发布
1.选择物体:选直线部分的白线.
2.选择原始轴线:选直线部分的红线
3:选要转到的弧轴线:选... [/B][/QUOTE]

搂主:
不是要你的操作要求。是弯曲的技术要求:半径,角度?
找你所画的那不是长度变了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-16 22:32:21 | 显示全部楼层
由所选(右边)曲线轴线定
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-17 04:05:59 | 显示全部楼层
为了程序简洁,首先假定:
已知线都是 LINE线 弯曲的轴线是 ARC 。绘图结果都是ARC或LINE。

  1. (print "命令:vline 由竖线画圆弧曲线; hline 由横线画斜线")

  2. ;预定义函数:根据直线上两点坐标,求K与c。直线方程为:y=kx+c
  3. ;                为了程序简洁,不进行两点是否重合的判断。
  4. ;参数:两点对  pta  ptb
  5. ;返回:k , c
  6. (defun line_k_c (pta ptb  / k c)
  7.   (setq xa (car pta ) ya (cadr pta))
  8.   (setq xb (car ptb ) yb (cadr ptb))
  9.   (setq k (/ (- ya yb) (- xa xb)))
  10.   (setq c (- ya  (* k xa)))
  11.   (list k c)
  12. )

  13. ;预定义函数:求直线与圆周线交点,只求一个最右点,为了程序简洁,不进行是否相交的的判断。
  14. ;参数:
  15. ;     圆方程为:  (x-a)^2 + (y-b)^2 = r^2
  16. ;     直线方程为:y=kx+c
  17. ;返回:交点pt  (右边的)

  18. (defun line_ciecle_pt (a b r k c / x y aa bb cc)
  19.   (setq aa (1+ (* k k)))
  20.   (setq bb (- (* 2 c k) (* 2 a) (* 2 b k)))
  21.   (setq cc (+ (* a a) (* (- c b) (- c b)) (* r r -1)))
  22.   (setq x (/ (- (sqrt (- (* bb bb) (* 4 aa cc)))  bb)  (* 2 aa)))
  23.   (setq y (+ (* k x) c))
  24.   (list x y)
  25. )

  26. ;定义函数由竖线—画—圆弧曲线
  27. (defun C:vline ()

  28.   ;1选取竖轴线:
  29.   (WHILE (not (setq sa (nentsel "\n选择竖轴线:")))) ; 选取竖轴线
  30.   (setq ename (car sa))                        ; 竖轴线实体名称
  31.   (setq elist (ENTGET ename))                ; 竖轴线实体数据表
  32.   (SETQ x-sa (CADR (assoc 10 elist)))        ; 竖线X坐标


  33.   ;2选取圆弧轴线
  34.   (WHILE (not (setq sb (nentsel "\n选择圆弧轴线:")))) ; 选取圆弧轴线
  35.   (setq ename (car sb))                        ; 圆弧轴线实体名称
  36.   (setq elist (entget ename))                ; 圆弧轴线实体数据表
  37.   (setq xc  (cadr (assoc 10 elist)))        ; 圆弧轴线中心X坐标
  38.   (setq yc  (caddr (assoc 10 elist)))        ; 圆弧轴线中心Y坐标
  39.   (setq rr   (cdr (assoc 40 elist)))         ; 圆弧轴线半径
  40.   (setq ptc  (list xc yc))              ; 圆心
  41.   
  42.   ;3选取竖线
  43.   (print "选择竖线(可多选):")
  44.   (setq ss (ssget))                        ; 选择竖线
  45.   (setq nn (sslength ss))                ; 选择集中物体数量
  46.   
  47.   ;4循环处理
  48.   (setq i -1)
  49.   (repeat nn
  50.     (setq i (1+ i))
  51.     (setq ename (ssname ss i))                ; 第i个实体
  52.     (setq elist (entget ename))                ; 第i个实体数据表
  53.     (setq x-si  (cadr (assoc 10 elist)))        ; 第i个实体X坐标
  54.     (setq ys-si (caddr (assoc 10 elist)))        ; 第i个实体起点Y坐标
  55.     (SETQ ye-si (caddr (assoc 11 elist)))        ; 第i个实体终点Y坐标
  56.     (setq yi-u  (min ys-si ye-si))           ; 第i个实体低点Y坐标
  57.     (setq yi-t  (max ys-si ye-si))           ; 第i个实体高点Y坐标
  58.    
  59.     (setq dxi (- x-si x-sa))                ; 第i竖线与竖轴线的X坐标差
  60.     ;求几何数据
  61.     (setq ri (+ rr dxi))                        ; 第i弧线半径
  62.    
  63.     (setq pti-ub (line_ciecle_pt  xc yc rr 0 yi-u))  ;求圆弧轴线上低点坐标
  64.     (setq s (line_k_c ptc pti-ub))
  65.     (setq k (car s) c (cadr s))                     ;求圆心到pti-b直线k , c
  66.     (setq pti-u (line_ciecle_pt  xc yc ri k c))     ;求第i圆弧线上低点坐标

  67.     (setq pti-tb (line_ciecle_pt  xc yc rr 0 yi-t))  ;求圆弧轴线上高点坐标
  68.     ;(setq s (line_k_c ptc pti-tb))
  69.     ;(setq k (car s) c (cadr s))                     ;求圆心到pti-b直线k , c
  70.     ;(setq pti-t (line_ciecle_pt  xc yc ri k c))     ;求第i圆弧线上高点坐标

  71.     ;开始画弧
  72.     (setq oldosnap (getvar "OSMODE"))
  73.     (setvar "OSMODE" 0)
  74.    
  75.     (command "arc" "c" ptc pti-u pti-tb)
  76.    
  77.     (setvar "OSMODE" oldosnap)
  78.   )  ;end repeat
  79.   (princ)
  80. );END DEFUN



  81. ;定义函数由横线—画—斜线
  82. (defun C:hline ()

  83.   ;1选取竖轴线:
  84.   (WHILE (not (setq sa (nentsel "\n选择竖轴线:")))) ; 选取竖轴线
  85.   (setq ename (car sa))                        ; 竖轴线实体名称
  86.   (setq elist (ENTGET ename))                ; 竖轴线实体数据表
  87.   (SETQ x-sa (CADR (assoc 10 elist)))        ; 竖线X坐标

  88.   ;2选取圆弧轴线
  89.   (WHILE (not (setq sb (nentsel "\n选择圆弧轴线:")))) ; 选取圆弧轴线
  90.   (setq ename (car sb))                        ; 圆弧轴线实体名称
  91.   (setq elist (entget ename))                ; 圆弧轴线实体数据表
  92.   (setq xc  (cadr (assoc 10 elist)))        ; 圆弧轴线中心X坐标
  93.   (setq yc  (caddr (assoc 10 elist)))        ; 圆弧轴线中心Y坐标
  94.   (setq rr   (cdr (assoc 40 elist)))         ; 圆弧轴线半径
  95.   (setq ptc  (list xc yc))              ; 圆心
  96.   
  97.   ;3选取横线
  98.   (print "选择横线(可多选):")
  99.   (setq ss (ssget))                        ; 选择竖线
  100.   (setq nn (sslength ss))                ; 选择集中物体数量
  101.   
  102.   ;4循环处理
  103.   (setq i -1)
  104.   (repeat nn
  105.     (setq i (1+ i))
  106.     (setq ename (ssname ss i))                ; 第i个实体
  107.     (setq elist (entget ename))                ; 第i个实体数据表
  108.     (setq xs-si  (cadr (assoc 10 elist)))        ; 第i个实体起点X坐标
  109.     (setq y-si  (caddr (assoc 10 elist)))        ; 第i个实体起点Y坐标
  110.     (SETQ xe-si (cadr  (assoc 11 elist)))        ; 第i个实体终点X坐标
  111.    
  112.     (setq dxsi  (- xs-si  x-sa))                ; 第i横线起点与竖轴线的X坐标差
  113.     (setq dxei  (- xe-si  x-sa))                ; 第i横线终点与竖轴线的X坐标差
  114.     ;求几何数据
  115.     (setq rsi (+ rr dxsi))                        ; 第i斜线起点  半径
  116.     (setq rei (+ rr dxei))                        ; 第i斜线终点  半径
  117.     (setq pti-b (line_ciecle_pt  xc yc rr 0 y-si))  ;求圆弧轴线上点坐标
  118.     (setq s (line_k_c ptc pti-b))
  119.     (setq k (car s) c (cadr s))                     ;求圆心到pti-b直线k , c
  120.     (setq pti-s (line_ciecle_pt  xc yc rsi k c))     ;求第i斜线起点坐标
  121.     (setq pti-e (line_ciecle_pt  xc yc rei k c))     ;求第i斜线终点坐标

  122.     ;开始画斜线
  123.     (setq oldosnap (getvar "OSMODE"))
  124.     (setvar "OSMODE" 0)
  125.    
  126.     (command "line"  pti-s pti-e "")
  127.    
  128.     (setvar "OSMODE" oldosnap)
  129.   )  ;end repeat
  130.   (princ)
  131. );END DEFUN
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-17 04:07:40 | 显示全部楼层
如果增加判断代码,上述画竖线(弧线)和横线(斜线)的程序也可以合并。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-28 17:57 , Processed in 0.488447 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表