QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
查看: 3941|回复: 42
收起左侧

[已解决] 现有凸轮外形,要把数据采集,有没有好的方法

[复制链接]
发表于 2014-10-22 09:23:40 | 显示全部楼层 |阅读模式

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
我现在要把这凸轮以一度一个点,来采集数据,9 K  o" ~3 R! M
我现在用的方法是以凸轮的圆心画根长线,把这长线转过一度,量长线与凸轮轮廓线交点到中心的位置来采集凸轮数据,有没有好的方法或者小软件。谢谢
发表于 2014-10-22 10:18:39 | 显示全部楼层
用2d扫描出来就可以了
发表于 2014-10-22 10:21:42 | 显示全部楼层
把那根线阵列360个,然后用CAD自带的计算器获取坐标点或极轴长度,360个数据是有点麻烦……编个软件比较好……
发表于 2014-10-22 12:03:49 | 显示全部楼层
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。% B0 y2 M& `+ k+ S+ X8 G
对交点使用约束,对直线标注极角,然后对交点进行坐标标注。( I7 L( l6 L. m6 X
上述设置好后,更改极角尺寸为0~360的每一个角度,此时交点的标注尺寸自动更新。1 @/ ^4 Y( r9 F0 a, D  E) q
剩下的就是自己记录坐标数据了。
4 X4 ^5 }, j* T+ o- O& j360个,确实多了点!
 楼主| 发表于 2014-10-22 12:15:48 | 显示全部楼层
我爱用acad 发表于 2014-10-22 12:03 static/image/common/back.gif
/ Z: `' j2 @! @  N( Z高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。. T4 l2 I" ^8 U* i% M3 Q6 E& o
对交点使用约束,对直 ...
! {& ]1 q. H1 U5 R
能把怎么设置的详细说一下嘛
' t! E" _! {# q
发表于 2014-10-22 12:37:05 | 显示全部楼层
现编写了一个程序,试一下(运行时稍有点卡):: H& o* F% p3 A  w% m; u
# @  t0 l9 c3 }4 `* O% c
aa.gif & s) t' |% u% V
发表于 2014-10-22 12:38:18 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:05 编辑
  K! _' D; T! R, ~/ l
' x8 o5 I) x; T' u: X(defun c:tt()
) |* T, ]0 v" y4 z5 ?3 \! G  (setvar "cmdecho" 0) ; [8 E& r. I# C. m
  (setq e(car(entsel"\n选择凸轮曲线:")))
8 _8 l, b* i: e9 c; K( `/ ~  (setq ei(car(entsel"\n选择投极轴直线:")))3 N' Y, a' G3 m( |$ G4 Z
  (setq O(getpoint"\n选择凸轮中心点:"))
' a& i& Z. p) J* i% V  (setq X (car O) Y (cadr O)) (setq n 1)
. a' D" F$ R, Q, f  |% t  (repeat 360# J  k1 `) m! b6 d! ?) x
    (command "rotate" ei "" O 1)2 c5 R& R9 B- B# L
    (setq Point (trans (car (GetInterPointlist ei e)) 0 1))4 j0 v! u  n6 V; F+ C9 X
    (command "Text" (list X Y) "5" "0" n)
* g, s8 L8 t, x    (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2)), `2 S# ~; x. _) b
    (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数8 |" S1 K) s2 n0 \! q# Q
    (setq Y (+ Y 10))' C  U' f/ v( P/ Y2 V( d" y
    (setq n (+ 1 n))% }4 ], S- H! P: {! ?  R; Y
  )  
# S, P& ?6 E* Z" @1 a5 @% U% \& D  (setvar "cmdecho" 1) ! k+ S2 |& A1 k- V+ u$ h" k+ r& c
  (princ)
% y3 i+ a/ j) M3 p5 b)1 C6 K. |( G) H) ]$ f. h% y
(defun GetInterPointlist (ent_1    ent_2    /      ent1     ent29 Z' @5 s, N% D" Z) O. X
     ax_ent_1 ax_ent_2 intpoints       i
: {! C9 u. W7 f" U     j    k     disp     int_list# H8 x: d6 R9 m
    )0 @8 K9 I# l, H7 @9 I' E5 J

- w, M: G4 m: @5 I7 }2 |& C9 @  (setq int_list nil)8 c$ [: s  M6 J( r
  (setq ax_ent_1 (vlax-ename->vla-object ent_1)5 S- Y' {1 Q  a% |" O; @! r
ax_ent_2 (vlax-ename->vla-object ent_2). S8 H7 g" D. X0 f7 S  x
  )
3 {2 o& D; O; h% W; W  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))& I; c* ~  N/ Q
  (setq intpoints (vlax-variant-value intpoints))5 ]. S/ @, c: c8 E$ p8 r9 b
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
8 d, H; ]+ G4 C0 S1 D9 z    (progn: A" X3 t# }* f3 t7 U* ?
      (setq i 0)' K, Q; u7 H) i2 j
      (setq j 0)- x3 U; p& m' k+ m
      (setq disp "")
" ?4 w* H4 y6 r4 D* L      (repeat$ V0 K# a  o) c" G8 q
(/ (+ 1$ O& m8 q/ F4 A/ q/ M
       (- (vlax-safearray-get-u-bound intpoints 1)
2 m4 v; K6 @5 b( a4 ?8 N3 J   (vlax-safearray-get-l-bound intpoints 1)' g7 C. O6 q: X3 ]
       )
1 m5 G( L# ^. L    )
% ?( U# I( Z8 }% A3 Z" z! u& W    3
# K( c1 w6 ?5 H$ t4 d" P )
0 l& K* q- @) l' A( L  (setq+ M) Q5 ?1 {# B5 l. H
    disp (list  @6 b) v. Z) B/ i- \
    (vlax-safearray-get-element intpoints j)
$ u3 v. Y( q/ B# o! b* f. y' u
- Q  q) t5 H; M8 A    (vlax-safearray-get-element intpoints (+ 1 j))& p& E  O7 X1 V5 `7 x% {

8 ?: F+ l7 h' }, R: s! w+ a    (vlax-safearray-get-element intpoints (+ 2 j))
2 p- E  b# m# \  )) a/ W% q! G# G+ B. ~7 x
  )
$ H* h3 h  @/ v! H8 [2 C  (setq i (+ 2 i)
! L3 L; z1 O: N/ r        j (+ 3 j)
! |) s1 o9 u& Z8 a4 W  )
( [* P/ Q9 p5 a  (setq int_list (append int_list (list disp)))
2 t. B$ q, J; `! q2 {0 y      )
! ]( \; }* C4 U/ }2 n1 F    )
" {! ]$ l  A% ^4 N  )1 s6 N4 O$ R$ s- P4 H0 I: T
  (setq int_list int_list)$ P( d' r5 j8 F1 h
)1 ^8 t5 v8 V# a
# c; H" Z! s. |
5 |8 W7 p1 A8 I" v5 K

点评

复制代码请到#9楼  发表于 2014-10-23 10:55
发表代码请使用"插入代码"功能,否则帖子中会有乱码,不便于网友复制代码  发表于 2014-10-23 10:54
发表于 2014-10-22 13:18:39 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:03 编辑
6 {1 k8 v" m& C' \( j& }/ x: J9 y$ a/ s$ X9 P; X% \
这个是保留两位小数的:  d, U/ w; C: E

; q% X. E0 S" G, I, \9 j aaa.gif

评分

参与人数 1三维币 +20 收起 理由
woaishuijia + 20 技术讨论

查看全部评分

发表于 2014-10-23 10:52:52 | 显示全部楼层
本帖最后由 woaishuijia 于 2014-10-23 10:56 编辑 % w) s( ?% `1 ~

0 K1 Z! {" Q) y( m代#7楼重帖代码
  1. (defun c:tt()
    9 P+ a' ~1 f9 G2 @
  2.   (setvar "cmdecho" 0) 0 ]  t; q% G" F! \0 S( J% l6 y
  3.   (setq e(car(entsel"\n选择凸轮曲线:")))7 e* p5 @( w5 M4 R7 I" }# z: [
  4.   (setq ei(car(entsel"\n选择投极轴直线:")))! w, [0 p! D, e3 ]- U4 L) _4 G
  5.   (setq O(getpoint"\n选择凸轮中心点:"))4 q$ G4 T: x7 M7 x4 \; x2 n( t
  6.   (setq X (car O) Y (cadr O)) (setq n 1)) f8 X  `/ ~7 B; c/ z
  7.   (repeat 360
    + f# G# j) V( X( P/ [8 H
  8.     (command "rotate" ei "" O 1)! |' L! v/ L7 ~$ c8 w% }; h$ `* n
  9.     (setq Point (trans (car (GetInterPointlist ei e)) 0 1))9 ~) g' b3 f( t: Y1 C$ ^
  10.     (command "Text" (list X Y) "5" "0" n)' w8 s' e! O- _7 [
  11.     (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))
    5 L" O, M+ W9 w( d  |
  12.     (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数
    $ X' x+ G" N" Z7 e* ?
  13.     (setq Y (+ Y 10))
    3 j6 b4 Q: X' n/ s+ M
  14.     (setq n (+ 1 n))
    . G( b& F* c9 @& }7 t
  15.   )  6 j4 `  z# p, l' v8 D
  16.   (setvar "cmdecho" 1)
    2 e4 e3 {4 A* _
  17.   (princ)
    & @+ ^4 w* n1 n: L$ J
  18. )
    4 t, b, N3 _' F0 w. Q9 v
  19. (defun GetInterPointlist (ent_1    ent_2    /      ent1     ent2  B* U, @2 N% S/ y# i* `4 u' U
  20.      ax_ent_1 ax_ent_2 intpoints       i1 B" ?7 r: Q2 T6 c
  21.      j    k     disp     int_list4 O" Y( e8 @, I% Q
  22.     )
    1 z( [; s" [! i' W" W! a
  23. % Z# x6 w' i! l" F7 B( s
  24.   (setq int_list nil)
    % t3 P+ S  {5 a" z
  25.   (setq ax_ent_1 (vlax-ename->vla-object ent_1)( \1 p) i* _6 }4 G
  26. ax_ent_2 (vlax-ename->vla-object ent_2)
    & P$ n+ A7 o0 ]0 {: |6 G
  27.   )! d: `& K' M! M; w9 P# D$ N  \
  28.   (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
    0 \* m4 k2 H  n+ w# i
  29.   (setq intpoints (vlax-variant-value intpoints))% }% e1 A, h8 o, Y1 ~/ _
  30.   (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
    8 Q  l: K6 A! \5 h0 x+ X. f
  31.     (progn
    4 `4 y" E  A- f  n
  32.       (setq i 0)! [5 P9 b" S2 _' V  k
  33.       (setq j 0)$ k9 Z% X, Q1 M# V" ]2 s# C. Q
  34.       (setq disp "")
    3 O) H: R  Y# n$ ?
  35.       (repeat
    6 E! J' c$ X9 i2 z2 R/ I
  36. (/ (+ 1
    ! E0 _0 A! b9 B1 m  N, Q  c2 v9 U
  37.        (- (vlax-safearray-get-u-bound intpoints 1)
    % z: Z3 l5 ~" f
  38.    (vlax-safearray-get-l-bound intpoints 1)% c: Y# F) T2 s+ Z6 f
  39.        )
      d& B9 E. {0 ]: f
  40.     )! w0 w# S% L2 F
  41.     3! |1 O) h# G* B  W1 y0 e
  42. )
    ' U" p- z. }3 `/ E; x8 }
  43.   (setq
    5 [) H! u- i# U& r1 S
  44.     disp (list
    - a5 w: x/ x5 j8 F) b* P
  45.     (vlax-safearray-get-element intpoints j)4 n2 K) w* v7 {

  46. ) S7 P" R8 E( E' O
  47.     (vlax-safearray-get-element intpoints (+ 1 j))
    5 n( y& Q. A7 V0 @6 S* g* i
  48. 4 V! P3 d1 B. G: L
  49.     (vlax-safearray-get-element intpoints (+ 2 j))' f$ P4 L- j0 d0 o2 v8 F
  50.   )5 ^* D4 C7 l: b, @; x7 }) U
  51.   )
    " _& Q; N0 f9 r% d/ g. n
  52.   (setq i (+ 2 i): Y* f( R- k" r" C9 S3 O
  53.         j (+ 3 j)
    - N1 c7 \/ e2 k$ E4 ?7 A/ |
  54.   )' l3 P& s: s, Q0 h
  55.   (setq int_list (append int_list (list disp)))2 x$ Z" \7 \/ x5 s7 J
  56.       )
    % A4 T* M5 Q; z9 m+ L* l) r4 u
  57.     ). n8 z$ O' d. N# k/ v/ p
  58.   ), Z9 t/ K3 Y/ J7 T
  59.   (setq int_list int_list)
    " K5 K4 f9 H- U. @) L/ M
  60. ); r0 x) I' e) ^" B* q
复制代码
 楼主| 发表于 2014-10-23 21:14:11 | 显示全部楼层
xhq1954425 发表于 2014-10-22 13:18 static/image/common/back.gif8 f& }  P& @: P. u9 j
这个是保留两位小数的:

2 }$ ~6 I) h* @' {谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
 楼主| 发表于 2014-10-23 21:18:09 | 显示全部楼层
本帖最后由 txh007 于 2014-10-23 22:33 编辑
8 d. ]* _2 D) ^7 A  f: m7 b$ `
woaishuijia 发表于 2014-10-23 10:52 static/image/common/back.gif9 U. I# F6 p4 g
代#7楼重帖代码
: G( u0 t  Z# D1 v5 d( f
我想问一下,这代码怎么用呢,复制进去不会用
$ Y+ T7 ]8 a. @4 _
发表于 2014-10-24 08:55:27 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-24 09:06 编辑 7 S, V- z3 S& v* h6 z! o
, J" r& Z1 a6 y( g5 ^/ i+ m
要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来看这个贴(好像是你发完贴之后好多天就不管了)……?先发一个改进一点的,等你批准说行了,我再发程序,也避免改来改去的:9 `7 E% v. j: E9 S
3 ?( b/ s4 h# A
aaa.gif
发表于 2014-10-25 09:57:13 | 显示全部楼层
楼上 搞二次开发的吗?  厉害
发表于 2014-10-25 10:27:49 | 显示全部楼层
其实最好用三坐标测量出来就可以了
发表于 2014-10-26 09:14:08 | 显示全部楼层
股海一客 发表于 2014-10-25 09:57 static/image/common/back.gif; S5 _8 `2 y6 r. r
楼上 搞二次开发的吗?  厉害
. R* Y2 s! [8 g* X% M& P$ s
我不厉害,二次开发只是业余爱好,本人是从事制图教学工作
发表于 2014-10-26 09:45:44 | 显示全部楼层
txh007 发表于 2014-10-23 21:14 static/image/common/back.gif
  C- s0 Q0 {/ A4 Q谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
) [6 w3 Z& ^6 K# |% m7 H
你要的不是坐标位置吗,莫名其妙
 楼主| 发表于 2014-10-27 12:33:18 | 显示全部楼层
本帖最后由 txh007 于 2014-10-27 12:39 编辑 + F5 H# G8 V+ Z5 p" e! I# S
xhq1954425 发表于 2014-10-24 08:55 static/image/common/back.gif
- T: y9 T' a+ x6 a& l要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来 ...
+ K, j+ G, W) c- P# o, P3 u
就是这样的( T! ^1 W! ]8 h
就是把精度为小数点后的第4位如100.6666
4 i. Z8 ~9 w# m; Q# {$ [) J谢谢,高手啊
3 A. u0 Y3 g2 G  @我这两天一直在车间。没有看论坛的回复,
: \# G$ k+ _; b* j86156046是我的QQ
 楼主| 发表于 2014-10-27 12:37:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-26 09:45 static/image/common/back.gif! j! b. g" C, g9 A; |
你要的不是坐标位置吗,莫名其妙
3 _: _( z( P0 i. ]7 ]& ~+ B
我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为98.3264,就是要的是边到中心的距离
发表于 2014-10-27 15:58:49 | 显示全部楼层
txh007 发表于 2014-10-27 12:33 static/image/common/back.gif4 `+ s, a7 I  o8 r
就是这样的
+ q/ n- [& l1 _; y- J" J. ?就是把精度为小数点后的第4位如100.6666
- m5 O" g" H+ j1 p0 a. T! Q谢谢,高手啊

) {* Y* j9 O* K' l0 o你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
发表于 2014-10-27 16:01:06 | 显示全部楼层
txh007 发表于 2014-10-27 12:37 static/image/common/back.gif
1 ~5 E6 c" W9 c# i' U0 f- F0 T我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为9 ...

+ r& e& B8 w" m8 E% \极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
 楼主| 发表于 2014-10-27 20:00:58 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 15:58 static/image/common/back.gif
; Z- ?; j9 J9 w1 r4 x* [你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
& {6 x% a( r2 E
这是我们领导的意思,我也只能照着做。其实小数点后三位就够了
 楼主| 发表于 2014-10-27 20:01:51 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif
: ]0 w# C2 C. ], W  P- _& e! [9 d极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
. A9 {( V, U- b7 f" k) u/ P
是的,但领导要求是长度和角度
 楼主| 发表于 2014-10-27 20:02:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif
0 U4 ]; g. \6 _9 h. A. G极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
9 O- D) e- Q2 x! V; }
是的,但领导要求是长度和角度
发表于 2014-10-27 20:17:13 | 显示全部楼层
txh007 发表于 2014-10-27 20:01 static/image/common/back.gif7 T: |6 G% Q+ E4 D+ h  x3 M
是的,但领导要求是长度和角度

9 ~* @: t* P, m* g我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
 楼主| 发表于 2014-10-29 12:46:02 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 20:17 static/image/common/back.gif
! K2 ^, r! }9 r  b5 ?  H+ m$ f& M我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
( |' L7 w0 l. |# m1 Y
我是要做具体工作的人,他嘴巴一动就行了,我总不能对领导说你做,我不会做的
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备13008828号-1 )

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