QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我现在要把这凸轮以一度一个点,来采集数据,
# C5 |1 ^4 {2 d) u* D我现在用的方法是以凸轮的圆心画根长线,把这长线转过一度,量长线与凸轮轮廓线交点到中心的位置来采集凸轮数据,有没有好的方法或者小软件。谢谢
发表于 2014-10-22 10:18:39 | 显示全部楼层
用2d扫描出来就可以了
发表于 2014-10-22 10:21:42 | 显示全部楼层
把那根线阵列360个,然后用CAD自带的计算器获取坐标点或极轴长度,360个数据是有点麻烦……编个软件比较好……
发表于 2014-10-22 12:03:49 | 显示全部楼层
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。7 O! L0 l1 n7 z, M
对交点使用约束,对直线标注极角,然后对交点进行坐标标注。
8 l7 y) H8 D/ }0 A7 ]上述设置好后,更改极角尺寸为0~360的每一个角度,此时交点的标注尺寸自动更新。& I5 J* z9 u8 Z; p! O+ C
剩下的就是自己记录坐标数据了。4 S9 x' H: z- L. K+ D. K
360个,确实多了点!
 楼主| 发表于 2014-10-22 12:15:48 | 显示全部楼层
我爱用acad 发表于 2014-10-22 12:03 static/image/common/back.gif2 Q0 q) `+ K8 H& S
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。
( b* C% p0 Z& i对交点使用约束,对直 ...

2 n" a/ I4 Y5 Y# ?1 K能把怎么设置的详细说一下嘛
4 Z# _' _0 A# P: T# x
发表于 2014-10-22 12:37:05 | 显示全部楼层
现编写了一个程序,试一下(运行时稍有点卡):" ~  Y. l4 j1 i# i9 d. u* j. g
3 J! D9 G2 L$ v0 W
aa.gif
" D& `* \) r0 K) ~
发表于 2014-10-22 12:38:18 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:05 编辑
3 z' Q  n* b( ?; w! s8 O$ g, r) b$ v# `- h% g$ A7 E6 C
(defun c:tt(): n9 ^2 Q! s' Y
  (setvar "cmdecho" 0) / ^, N: p5 V$ l, r
  (setq e(car(entsel"\n选择凸轮曲线:")))
! S% i" S, u! \  (setq ei(car(entsel"\n选择投极轴直线:")))# I0 M% S' L' f& k' {6 L9 e" ^9 t
  (setq O(getpoint"\n选择凸轮中心点:"))+ L+ J  h' J' U5 H. t
  (setq X (car O) Y (cadr O)) (setq n 1)* I) }' A/ T2 Q2 m( k5 X6 h* C$ C
  (repeat 360
* R' W3 D0 e8 k- d5 r! _1 }9 ^# }    (command "rotate" ei "" O 1)& {. G: C6 ]0 w5 b% p
    (setq Point (trans (car (GetInterPointlist ei e)) 0 1))9 I2 L. A4 a/ d# T# P" u
    (command "Text" (list X Y) "5" "0" n)6 N: L/ Q0 i$ c, y' l
    (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))2 C2 |# U8 \8 T
    (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数* _- w+ o0 X- N
    (setq Y (+ Y 10))
* h/ c" g6 D) ]    (setq n (+ 1 n))
- K$ J1 J* y4 c. r1 a, d  )  
; i  w0 `2 M# n! U% D. B6 b/ x  (setvar "cmdecho" 1) 9 z* U! K* T6 m! i" Q/ }. ]# {
  (princ)! e3 F/ s9 v  X! u" Z2 ]
)
9 V% D% m' p* ?+ X  `(defun GetInterPointlist (ent_1    ent_2    /      ent1     ent24 `' F0 m6 G3 v; C
     ax_ent_1 ax_ent_2 intpoints       i; s# ]9 g7 q) N  |9 c8 c+ y# ?
     j    k     disp     int_list
# v/ o/ w4 n3 @, k0 q' v6 t$ V    )& t5 Y* N1 C" E+ o* K& [
+ e; K2 X6 ]6 m- r" r
  (setq int_list nil)
9 M$ d& E( ~7 a: \: Q. R9 ^  (setq ax_ent_1 (vlax-ename->vla-object ent_1). V1 y5 _, U4 a
ax_ent_2 (vlax-ename->vla-object ent_2); [3 B' Z' {8 t2 z. X
  )7 p' i' z* c2 |" [" q- J
  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
5 L' S: g$ o% h  (setq intpoints (vlax-variant-value intpoints)): V7 `5 h/ _- N* {; P
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0), d/ j$ @. D( f& Q5 m: a, e
    (progn( w; D1 W, e1 x. @
      (setq i 0)
$ e  g" r! m% n) F) W3 y      (setq j 0)+ J0 t7 z* O* f" [& b. {# e
      (setq disp "")
7 _' L9 T# ~6 z+ O5 Y4 V      (repeat% k1 y; i1 F8 w% r' g! C
(/ (+ 1
) i; `3 x: S5 u) |       (- (vlax-safearray-get-u-bound intpoints 1)
' ^+ ?. z5 R4 i1 n8 E. f! I( \/ R   (vlax-safearray-get-l-bound intpoints 1)- E2 J8 r9 C1 q9 o" R; M
       )7 r% \2 b7 D7 }# M
    )
! J6 T5 s; H. E    38 w' R8 ~8 d1 O8 I& U3 j; }1 r5 ?, b
)
; R* L" X4 F/ F9 ?# G& O  (setq9 l8 }1 j2 r' ?* Q6 I
    disp (list) J2 E9 b# h0 k
    (vlax-safearray-get-element intpoints j)% i* A) D3 l: p1 R  |- f4 d

0 v1 Z( W5 ]9 N8 q/ t    (vlax-safearray-get-element intpoints (+ 1 j))1 S8 S# l  {  b) q3 K1 t

/ y- s. `0 C+ ]% Y. P4 N- S    (vlax-safearray-get-element intpoints (+ 2 j))/ X9 Y8 {+ k0 g' j2 L# k7 u0 |
  )# a* Q5 Y( M# i
  )4 v& \' h$ T* \
  (setq i (+ 2 i)
* Z% h& O4 V1 U+ n5 [$ f; O        j (+ 3 j)2 h' P6 \' q+ b5 L5 y( a* `
  ): n( o4 O# e7 t: @6 j# f
  (setq int_list (append int_list (list disp)))
( m9 J" K, w% u% h( z      )' H6 y8 `; O8 Z) ]# F$ @
    )8 U; p+ v9 J$ D  ]3 A, j! M8 U
  )  L& ]. ]+ k, P2 F+ g4 u
  (setq int_list int_list)( X0 Z7 u! A, C8 m8 L1 y
)1 u0 Y  w: v4 F, I4 m% z" P

7 l6 }! ?$ A7 j4 v3 {' M0 |1 ]" e/ `# g4 u/ F! v7 S9 c5 n1 O

点评

复制代码请到#9楼  发表于 2014-10-23 10:55
发表代码请使用"插入代码"功能,否则帖子中会有乱码,不便于网友复制代码  发表于 2014-10-23 10:54
发表于 2014-10-22 13:18:39 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:03 编辑 3 G% q2 @! O% a$ K
5 V$ f8 n3 S+ a4 i" @: W
这个是保留两位小数的:* v  ~* w' Q0 r. v) n% }

- m% z% v. A& v" c1 D aaa.gif

评分

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

查看全部评分

发表于 2014-10-23 10:52:52 | 显示全部楼层
本帖最后由 woaishuijia 于 2014-10-23 10:56 编辑 + w# ^: x' g4 E+ X' q

8 t* E/ G. Y1 s: m, u3 r代#7楼重帖代码
  1. (defun c:tt()
    ' R1 G1 t  n% f/ ~& s
  2.   (setvar "cmdecho" 0)
    . b3 f& ]/ V2 L& T5 c
  3.   (setq e(car(entsel"\n选择凸轮曲线:")))
    9 c9 N& R. ~9 J5 e/ x% d
  4.   (setq ei(car(entsel"\n选择投极轴直线:")))
    ' X# E: b8 X8 w6 Y2 c
  5.   (setq O(getpoint"\n选择凸轮中心点:"))
    # U& C  ~9 T6 ]! a9 A
  6.   (setq X (car O) Y (cadr O)) (setq n 1)
    : R9 `/ e3 z" Z: G
  7.   (repeat 360; Q. Y  P" `" O2 Y3 H
  8.     (command "rotate" ei "" O 1)
    " V! h5 O' Z  Y' v8 i% g: w
  9.     (setq Point (trans (car (GetInterPointlist ei e)) 0 1))
    # q  j$ O( D% o; u
  10.     (command "Text" (list X Y) "5" "0" n)
    # I; R" R* I9 Q
  11.     (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2)). A( a% D3 h2 `( s# C, j
  12.     (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数! `4 @2 ]& r1 \2 ~
  13.     (setq Y (+ Y 10))
    9 J7 q* N0 @: t/ _" G' P& O7 M; S  v+ C# b4 H
  14.     (setq n (+ 1 n))
    # D/ ], _; |) r% i+ y! x  ^) H+ W( v
  15.   )  
    ( `" _1 z1 z) A8 V
  16.   (setvar "cmdecho" 1) $ Q. s4 l6 S. x: ^
  17.   (princ)
    ) r. \0 w6 [, A% Y9 B
  18. )
    5 I6 R" v7 J7 G. p! I; ]' ]
  19. (defun GetInterPointlist (ent_1    ent_2    /      ent1     ent2
    + A+ Q+ H5 D1 y' R, I5 ?4 N- }
  20.      ax_ent_1 ax_ent_2 intpoints       i
    ; D8 [( o1 n0 M% _
  21.      j    k     disp     int_list$ g0 t) m$ E, }/ R! G2 d
  22.     )! P, v3 C" p/ }5 s
  23. % `  {1 g1 w4 y4 e5 F
  24.   (setq int_list nil)" K) n3 {& |! {( h- ?, w
  25.   (setq ax_ent_1 (vlax-ename->vla-object ent_1)5 H+ l# G5 z# A, \# e/ i
  26. ax_ent_2 (vlax-ename->vla-object ent_2)% ?$ E# h4 @  W
  27.   )
      h! L& p) Y4 _; u# u& a: Z- C. L7 I& I
  28.   (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
    ) d9 Z" [, Q( s/ n$ N/ i2 v
  29.   (setq intpoints (vlax-variant-value intpoints)). w( G% @- c: j. k
  30.   (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
    8 {) M( m+ F3 I- w* H
  31.     (progn* C! e& K( F0 H- p( L) ~3 `; z
  32.       (setq i 0)( E7 V, a+ v: T; h/ D% n
  33.       (setq j 0)
    9 \" @/ z9 Y, j! ^( P# o2 G
  34.       (setq disp "")5 D# W9 i; y5 N' _- ]0 a! c% [
  35.       (repeat
    . F7 ]! x8 ~* [. y
  36. (/ (+ 11 A0 M3 h7 S6 s+ t  s
  37.        (- (vlax-safearray-get-u-bound intpoints 1)5 Q9 x# X( Q/ E$ S
  38.    (vlax-safearray-get-l-bound intpoints 1)
    8 L' G- n5 ^  n, v  r6 R5 Q
  39.        )
    % D* E. i. O' `2 L9 H- k
  40.     )9 W0 D2 r& C$ \/ A* X! E
  41.     3
    ) e5 S$ c1 l  d7 v
  42. ); F7 l  i) i2 h: t+ R  }
  43.   (setq) c4 O8 ~! w0 H+ x9 N& ?3 C
  44.     disp (list
    ( O1 H' ]  W% ]' i
  45.     (vlax-safearray-get-element intpoints j)
    ' O) L& Y, Q+ f1 x( m' w1 h5 I1 S

  46. ' R# u5 y% z- A1 T3 m( `' O7 a, `
  47.     (vlax-safearray-get-element intpoints (+ 1 j))
    3 r2 k/ [% f0 `% U3 c0 |) w

  48. , R/ {5 P1 E9 B+ D
  49.     (vlax-safearray-get-element intpoints (+ 2 j))
      M1 Q7 I* C. N  P; L3 l! w+ W
  50.   )( s0 |+ d  M8 d) |
  51.   )
    4 b0 w% X3 r, D! h$ @
  52.   (setq i (+ 2 i)/ t; l" W; V. I( u
  53.         j (+ 3 j)  `. ?; D9 q/ r1 i& Y+ C- R
  54.   )
    6 C, S, o8 J( h% k. o* k2 X
  55.   (setq int_list (append int_list (list disp)))
    2 T6 l* v% y, I# w
  56.       )
    & D* r1 U0 E6 |3 c6 `
  57.     )
      i0 R6 }+ I5 w- F8 K% F
  58.   )" |0 g! g3 t' c0 K
  59.   (setq int_list int_list)
      y" u% W+ C" V! U0 p( r( D
  60. )
    ' y# ~4 ?  e& o# ~) V
复制代码
 楼主| 发表于 2014-10-23 21:14:11 | 显示全部楼层
xhq1954425 发表于 2014-10-22 13:18 static/image/common/back.gif  h7 w( l7 U* R- a/ I
这个是保留两位小数的:
: O1 P( h' W6 e
谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
 楼主| 发表于 2014-10-23 21:18:09 | 显示全部楼层
本帖最后由 txh007 于 2014-10-23 22:33 编辑
7 V1 Y+ F/ Z# M
woaishuijia 发表于 2014-10-23 10:52 static/image/common/back.gif) N( b- P* i8 Z1 h$ z# E# m
代#7楼重帖代码

- a2 z& H- h" f% j9 s8 L7 x' V我想问一下,这代码怎么用呢,复制进去不会用
3 O) U) E: S! o5 e
发表于 2014-10-24 08:55:27 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-24 09:06 编辑
6 R- O$ ^% ~6 n
7 M- p$ E9 c  {6 \要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来看这个贴(好像是你发完贴之后好多天就不管了)……?先发一个改进一点的,等你批准说行了,我再发程序,也避免改来改去的:3 M8 E: I: n4 p/ O* [+ c4 f

' k$ y2 U: ~' ^( ^& ? 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. O# M) T+ c% F7 A1 E7 v& k
楼上 搞二次开发的吗?  厉害

+ b4 Z2 Q! |+ G我不厉害,二次开发只是业余爱好,本人是从事制图教学工作
发表于 2014-10-26 09:45:44 | 显示全部楼层
txh007 发表于 2014-10-23 21:14 static/image/common/back.gif) X9 n% L- I" r, n
谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
- I3 v( I" o' k; _7 _
你要的不是坐标位置吗,莫名其妙
 楼主| 发表于 2014-10-27 12:33:18 | 显示全部楼层
本帖最后由 txh007 于 2014-10-27 12:39 编辑 ! k1 t2 K- `+ w$ ]4 m1 |* r7 |; w
xhq1954425 发表于 2014-10-24 08:55 static/image/common/back.gif
7 n4 x* \) v" z; E2 h要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来 ...

$ C  ~+ o2 V! f$ ?* u& r, I, h就是这样的: w# L* t) p7 j/ m: L
就是把精度为小数点后的第4位如100.6666: s  h/ _: Y  E7 H
谢谢,高手啊3 d  \  z: Z3 S& d+ F$ ]) a
我这两天一直在车间。没有看论坛的回复,! `, ^  f$ I3 q% H2 m
86156046是我的QQ
 楼主| 发表于 2014-10-27 12:37:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-26 09:45 static/image/common/back.gif& ]- n- }3 z2 L) W: m
你要的不是坐标位置吗,莫名其妙
  M9 r" m3 c% }3 j0 L8 \- N9 X% d
我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为98.3264,就是要的是边到中心的距离
发表于 2014-10-27 15:58:49 | 显示全部楼层
txh007 发表于 2014-10-27 12:33 static/image/common/back.gif
, u- M- ?; ~* X; G0 t! n, y% @就是这样的
1 j+ w- f$ K7 `% V/ v; Y就是把精度为小数点后的第4位如100.6666
; q# H' m9 p6 w2 b) w5 q4 n2 E: c谢谢,高手啊
/ n+ K: {* m" K1 p
你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
发表于 2014-10-27 16:01:06 | 显示全部楼层
txh007 发表于 2014-10-27 12:37 static/image/common/back.gif
0 A- m5 d8 E% [/ n; d# Z我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为9 ...
2 d+ V3 C/ y  |
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
 楼主| 发表于 2014-10-27 20:00:58 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 15:58 static/image/common/back.gif
: p( r2 @5 F. K) k4 t你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
" o; k- s) [( Q. [) Y. ^
这是我们领导的意思,我也只能照着做。其实小数点后三位就够了
 楼主| 发表于 2014-10-27 20:01:51 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif. J% D1 P& C; L8 ?* E# X
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
1 S, p6 G0 E" x5 E5 O" y2 k- R, b
是的,但领导要求是长度和角度
 楼主| 发表于 2014-10-27 20:02:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif
) x+ j$ V3 l& v! H极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等

! [" N- H: |9 n是的,但领导要求是长度和角度
发表于 2014-10-27 20:17:13 | 显示全部楼层
txh007 发表于 2014-10-27 20:01 static/image/common/back.gif
8 v7 I7 m" z: x是的,但领导要求是长度和角度
2 N2 M* x  {- m& }# u. m+ U$ c
我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
 楼主| 发表于 2014-10-29 12:46:02 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 20:17 static/image/common/back.gif
+ b% C0 d. t5 W我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
2 \; W3 E% R( l" z& d
我是要做具体工作的人,他嘴巴一动就行了,我总不能对领导说你做,我不会做的
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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