QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我现在要把这凸轮以一度一个点,来采集数据,
* K6 V2 y. T9 t) n% g) f我现在用的方法是以凸轮的圆心画根长线,把这长线转过一度,量长线与凸轮轮廓线交点到中心的位置来采集凸轮数据,有没有好的方法或者小软件。谢谢
发表于 2014-10-22 10:18:39 | 显示全部楼层
用2d扫描出来就可以了
发表于 2014-10-22 10:21:42 | 显示全部楼层
把那根线阵列360个,然后用CAD自带的计算器获取坐标点或极轴长度,360个数据是有点麻烦……编个软件比较好……
发表于 2014-10-22 12:03:49 | 显示全部楼层
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。
+ [5 [: Z+ k4 S4 Q/ z9 S对交点使用约束,对直线标注极角,然后对交点进行坐标标注。9 u3 ?3 a: z2 m. A/ I
上述设置好后,更改极角尺寸为0~360的每一个角度,此时交点的标注尺寸自动更新。+ U2 O  x: a# _  e9 Z( V" z3 d
剩下的就是自己记录坐标数据了。4 N3 a: I4 @9 o$ G' k3 K
360个,确实多了点!
 楼主| 发表于 2014-10-22 12:15:48 | 显示全部楼层
我爱用acad 发表于 2014-10-22 12:03 static/image/common/back.gif3 v2 a2 j* C9 D
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。
; O5 s7 c- T0 s. \9 t对交点使用约束,对直 ...
7 q# U" q1 t$ Y) }) B* V
能把怎么设置的详细说一下嘛
: E9 }, I5 r6 v( [  B2 D. o
发表于 2014-10-22 12:37:05 | 显示全部楼层
现编写了一个程序,试一下(运行时稍有点卡):. U( M4 g8 F( Z
2 k, G0 g& w) R0 e* [5 f
aa.gif
2 F! O+ H9 A; V1 T$ y# J1 w8 G
发表于 2014-10-22 12:38:18 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:05 编辑
" X! E/ d9 A8 v+ v& v* i( Q
9 X- e; }6 r1 z+ `/ s0 f* _" r6 o) n(defun c:tt(). P  R8 A  Q+ ^, e
  (setvar "cmdecho" 0)
  g4 j. p3 o' i- }. a3 v" l. k  (setq e(car(entsel"\n选择凸轮曲线:")))- K3 A- @7 c5 e+ j, W
  (setq ei(car(entsel"\n选择投极轴直线:")))
  m4 U% ^0 A% t$ w) n6 l  (setq O(getpoint"\n选择凸轮中心点:")); `: a2 {0 R/ t  B3 g/ [
  (setq X (car O) Y (cadr O)) (setq n 1)3 F4 [9 `' v$ [. g" G; |- ~
  (repeat 360. F6 I7 V! E2 ]' l8 i3 a5 B
    (command "rotate" ei "" O 1)
- m  m4 x- z5 E# D5 t  J- ~' f/ \    (setq Point (trans (car (GetInterPointlist ei e)) 0 1))
" N; K. y) ?$ @( O    (command "Text" (list X Y) "5" "0" n)' p7 p& i$ R  I- Q, a8 I% w
    (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))$ r( J5 r2 g+ x, o% |
    (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数+ U" I! q  d+ J. ^$ w/ ?
    (setq Y (+ Y 10))/ f5 ], X) b4 g: ^" T. K# k
    (setq n (+ 1 n))
" X. j* X  z, Y0 u; \$ c) Z% I  )  
% y0 a1 [3 H2 y) J8 n  (setvar "cmdecho" 1) # X( G: S0 d% B3 ~7 v0 O7 m
  (princ)
* |! c  V1 K$ {)9 b& s- N- b" x, [% F& Z
(defun GetInterPointlist (ent_1    ent_2    /      ent1     ent2
4 w4 A0 i0 e4 ^6 |     ax_ent_1 ax_ent_2 intpoints       i
2 i7 t# K* G) O* |     j    k     disp     int_list
! U6 @! Q6 `  _7 n1 {    )
! H- b( x5 U2 g4 g( D2 Y2 ^
. ]' L9 ?  d8 Z2 B  (setq int_list nil)! m$ O9 m6 l! o* P& R
  (setq ax_ent_1 (vlax-ename->vla-object ent_1)9 u7 b2 K" v+ M+ F( h. @
ax_ent_2 (vlax-ename->vla-object ent_2)* r' Y! n" G  A* O
  )
. y# v+ n/ B  e7 P8 Z+ u" x! H  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))! e  a3 P$ n/ g* ~
  (setq intpoints (vlax-variant-value intpoints))/ R( g! ]( e4 z( t* E
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)* V1 r! Q3 m: n1 W9 V% r
    (progn" p6 ^8 T1 ]+ z
      (setq i 0)$ h2 m6 [% o* A3 H3 s0 ^
      (setq j 0)! f( x! B# X7 L0 c* m/ m% T
      (setq disp "")/ i  u3 l7 M8 n6 T& G) h
      (repeat
/ Y6 B5 U( E! }* m, d (/ (+ 1! C& m3 G* U+ I# J" w1 g4 {
       (- (vlax-safearray-get-u-bound intpoints 1): `2 b/ |  G& D3 F1 A" M, ^
   (vlax-safearray-get-l-bound intpoints 1)
6 m$ g% _% C5 n  P! S& n8 i8 a       )
' H  t  |& Z  [$ p    )
1 h5 k/ u( C: c( j7 n    3
& y- C9 ^# R* q4 j* f8 Z2 }5 Y) d )
5 T' G( w$ o0 k& t" c% w5 b  (setq
, w, z9 T  B: C    disp (list
% k) x) ?( q% u1 i7 a    (vlax-safearray-get-element intpoints j)
+ e+ g4 I) |' v$ R" |6 i+ S. J6 L' i6 ?+ b1 I3 D
    (vlax-safearray-get-element intpoints (+ 1 j))
; \, G2 C. k+ h0 U! }8 ?
) Z9 F9 Q7 _# ^: p0 w' F7 a, U! Q  j    (vlax-safearray-get-element intpoints (+ 2 j))
! ?+ b5 a8 n; C# _( m  )5 p" h' t1 R0 L5 [
  )
, d* R9 o0 g: F  (setq i (+ 2 i)- I3 T( s% {1 K8 k2 G! Y
        j (+ 3 j): b4 F& ~# G* Q; Y
  )
8 s: p% v$ N1 b" r0 ?7 F  (setq int_list (append int_list (list disp)))
2 t# ]) n; V8 F+ b2 ~/ \      )
0 c2 W2 Q5 U& z+ S* _- y0 R+ o4 k    )
0 F. d. w  C, D+ N3 E  )+ q4 b, u# y- D" I
  (setq int_list int_list)
$ T" l, E! W4 E+ [1 J+ |) r: r: q)5 A2 t$ t0 A: O, v4 x" M

& F) b# a9 z7 P' `( ]0 p0 M, Z+ O4 I! V/ h2 ?  ]; g& F& m8 z

点评

复制代码请到#9楼  发表于 2014-10-23 10:55
发表代码请使用"插入代码"功能,否则帖子中会有乱码,不便于网友复制代码  发表于 2014-10-23 10:54
发表于 2014-10-22 13:18:39 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:03 编辑 # `- ~, i( }8 U- N, C; v9 y# F' c

+ R; r( s! K7 T! ?6 v/ s1 W这个是保留两位小数的:
6 R3 D$ F+ w" ?6 }1 c$ T7 c+ U" z$ ~, I/ e% z% ?8 _, k5 g4 U
aaa.gif

评分

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

查看全部评分

发表于 2014-10-23 10:52:52 | 显示全部楼层
本帖最后由 woaishuijia 于 2014-10-23 10:56 编辑 ! S1 \& D; p+ N

* |+ q& n/ R. C  N% q1 F- B代#7楼重帖代码
  1. (defun c:tt()# U9 H5 `; R2 W& ]
  2.   (setvar "cmdecho" 0) , q5 J5 l3 y! q* i, [. _
  3.   (setq e(car(entsel"\n选择凸轮曲线:")))% J) D- t& s4 q; G# p; [9 k
  4.   (setq ei(car(entsel"\n选择投极轴直线:")))
    1 H  ]' Z( K  x
  5.   (setq O(getpoint"\n选择凸轮中心点:"))
    : y& d4 w( E9 N: F8 D3 I
  6.   (setq X (car O) Y (cadr O)) (setq n 1)& H7 h/ s, W# N# L
  7.   (repeat 360# b/ {& V" Y( ]" d" n
  8.     (command "rotate" ei "" O 1)
    - g/ ?4 ^8 E8 l. N
  9.     (setq Point (trans (car (GetInterPointlist ei e)) 0 1))
    , z& g- l9 G; M. D/ Q# h
  10.     (command "Text" (list X Y) "5" "0" n)
      c6 {6 l8 c3 a! Q' M6 h7 v
  11.     (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))
    4 W1 A1 A* x5 @8 X4 X* \
  12.     (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数. r7 O+ {: s( F9 v& F8 c9 T
  13.     (setq Y (+ Y 10))
    ) R+ X% V9 O, L  S
  14.     (setq n (+ 1 n))
    $ ^0 y* F0 Q# o- {5 G5 o& D. H
  15.   )  4 ?1 W, D; B# {4 O+ i6 V- C
  16.   (setvar "cmdecho" 1) - m. b( C  Q8 Y# M
  17.   (princ)+ B) e2 H. d2 X
  18. )0 x3 P$ Z1 G2 _" |* U
  19. (defun GetInterPointlist (ent_1    ent_2    /      ent1     ent2
    : O. F! y6 C! t: @
  20.      ax_ent_1 ax_ent_2 intpoints       i' |$ c9 b" P: I' f; X$ p( }
  21.      j    k     disp     int_list
    - m  ?9 o2 a' h" U- O9 C
  22.     )1 |3 g3 ~. P. i: C

  23. 8 o% l8 X+ g7 Y2 M4 S0 C
  24.   (setq int_list nil)& w. ^# _9 Z! {+ E" [
  25.   (setq ax_ent_1 (vlax-ename->vla-object ent_1)
    $ N6 {# k& I5 y% u" [' A/ p
  26. ax_ent_2 (vlax-ename->vla-object ent_2)& b$ K$ C3 D9 t0 f! H2 P( H
  27.   )
    1 |( }4 V& o* \$ l% `
  28.   (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
    ! W# R0 c0 x7 K7 A$ Y7 U2 h! a, H
  29.   (setq intpoints (vlax-variant-value intpoints))
    ( j+ |" p; j5 ]+ A% g/ k( B6 q
  30.   (if (> (vlax-safearray-get-u-bound intpoints 1) 0)1 j) O) _1 c% w0 L& K( I
  31.     (progn
    8 e5 h9 p, h: O9 d$ _
  32.       (setq i 0)
    8 ~; h$ h. c5 w7 g
  33.       (setq j 0)
    $ Y7 j5 r9 D/ ~& B+ s
  34.       (setq disp ""). g, |# O2 s- A
  35.       (repeat
    ( S6 u! [( l2 V1 c
  36. (/ (+ 1+ {% w5 u( G/ j- v( U
  37.        (- (vlax-safearray-get-u-bound intpoints 1): A! V2 n$ {0 T6 w% [1 h6 h% O
  38.    (vlax-safearray-get-l-bound intpoints 1)9 u9 }0 S$ b; j3 k3 F
  39.        )
      h- W; @$ S5 w5 O7 U2 h4 x
  40.     )
    0 l) U: y' r- ?1 c/ i( M9 y
  41.     3- Z+ V" U7 N& c" a7 a
  42. )
    6 {/ ?% l6 X2 v* Z+ A8 b+ l0 w
  43.   (setq. H" l( \8 E* v& c- w5 [' x
  44.     disp (list
    : e7 I* |" G$ L0 P
  45.     (vlax-safearray-get-element intpoints j)
    $ b# @/ ^( v- W4 K- n4 R

  46. , y  T' W* X" z% [0 G- y
  47.     (vlax-safearray-get-element intpoints (+ 1 j))& ^6 |2 r# A' i( K+ }' f
  48. ) R& d! Y$ k  o0 M9 l% c3 f; `
  49.     (vlax-safearray-get-element intpoints (+ 2 j))) B0 D* V1 N. H/ ]3 y9 E$ K1 A
  50.   )
    ; j* u: P. L8 b6 |2 F, l" L
  51.   )& S. l: [5 [3 V2 h+ f! a
  52.   (setq i (+ 2 i)9 g6 K7 D. n  b9 C
  53.         j (+ 3 j)1 q% n" x8 y6 k/ |
  54.   )
    7 a. b1 b( Q$ s3 i1 D
  55.   (setq int_list (append int_list (list disp)))
    . v) A; E7 |7 [6 f% J' i% l
  56.       )4 T6 |+ ~9 R, V' U. O
  57.     )0 I+ E) F$ M6 v. G  {; _
  58.   )) c) u3 o) p% a4 u. O  K, O& |
  59.   (setq int_list int_list)
    ) y1 B, x. @9 m
  60. )" |% F6 a+ a! D/ g1 S# _0 ~
复制代码
 楼主| 发表于 2014-10-23 21:14:11 | 显示全部楼层
xhq1954425 发表于 2014-10-22 13:18 static/image/common/back.gif
8 ^" T: ~: c0 @' I9 A# k这个是保留两位小数的:

4 e- E! F- H4 j谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
 楼主| 发表于 2014-10-23 21:18:09 | 显示全部楼层
本帖最后由 txh007 于 2014-10-23 22:33 编辑 ) T: M# G: M2 z/ c- e
woaishuijia 发表于 2014-10-23 10:52 static/image/common/back.gif& B! f4 g" U5 m
代#7楼重帖代码

/ L, b6 `+ r* \* Y5 g) c, T% Y* D; w' G我想问一下,这代码怎么用呢,复制进去不会用! j% |+ r8 n8 G/ [1 P3 i
发表于 2014-10-24 08:55:27 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-24 09:06 编辑 " g) ~( d+ J; Y# ?& [3 k; {, _

: E! f% G  h( N. o1 f* X) d8 }$ C要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来看这个贴(好像是你发完贴之后好多天就不管了)……?先发一个改进一点的,等你批准说行了,我再发程序,也避免改来改去的:
# k5 N2 m3 S  r  x% o% f7 p! \  C. }/ ^' n1 q0 S
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
8 A6 |& |" x9 w% a7 `) {# D楼上 搞二次开发的吗?  厉害

1 x0 Y/ U1 l" ]我不厉害,二次开发只是业余爱好,本人是从事制图教学工作
发表于 2014-10-26 09:45:44 | 显示全部楼层
txh007 发表于 2014-10-23 21:14 static/image/common/back.gif& Y% w( |! j& {' s7 q3 W1 p0 {
谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
$ t( E6 s& J" x% F1 h
你要的不是坐标位置吗,莫名其妙
 楼主| 发表于 2014-10-27 12:33:18 | 显示全部楼层
本帖最后由 txh007 于 2014-10-27 12:39 编辑 1 z# y( O# W% Z: |/ a4 U( d- U- B
xhq1954425 发表于 2014-10-24 08:55 static/image/common/back.gif5 s# o4 L! y+ q, l& l( L
要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来 ...
% }+ O- _$ J8 L3 t
就是这样的4 |1 h( b, ~/ x1 u1 |1 F6 Y7 e
就是把精度为小数点后的第4位如100.6666- I0 b" t* n/ D2 [" k
谢谢,高手啊
8 c0 p& ~( |/ `+ X& R我这两天一直在车间。没有看论坛的回复,' Q# Q! ^. Y: g+ f1 ^
86156046是我的QQ
 楼主| 发表于 2014-10-27 12:37:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-26 09:45 static/image/common/back.gif
: B4 x" I0 w1 _2 C2 i1 V你要的不是坐标位置吗,莫名其妙
/ S+ E7 k5 Q2 i: N1 y0 _+ ^+ [
我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为98.3264,就是要的是边到中心的距离
发表于 2014-10-27 15:58:49 | 显示全部楼层
txh007 发表于 2014-10-27 12:33 static/image/common/back.gif& C" D* T: z: A0 H
就是这样的
8 }: x0 Q5 \- q2 X* A9 y就是把精度为小数点后的第4位如100.66662 n  v$ [' B! ]
谢谢,高手啊

( r7 O7 q0 `, K你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
发表于 2014-10-27 16:01:06 | 显示全部楼层
txh007 发表于 2014-10-27 12:37 static/image/common/back.gif! i! r! q: [( _4 o
我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为9 ...
' o5 ^* l# j$ J+ N! ]$ p
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
 楼主| 发表于 2014-10-27 20:00:58 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 15:58 static/image/common/back.gif
2 Z# a5 Q* ?! O: B你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
% t/ |2 `7 Q. ?5 ~' ~5 K  o
这是我们领导的意思,我也只能照着做。其实小数点后三位就够了
 楼主| 发表于 2014-10-27 20:01:51 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif3 {' O, U# v) j! l# y# m# {5 t4 A
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
- {6 |2 _, r4 C; j1 z. l
是的,但领导要求是长度和角度
 楼主| 发表于 2014-10-27 20:02:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif
5 l) H/ V: m6 }. L3 T1 P极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等

) ]( n8 V. n$ p5 Y) A是的,但领导要求是长度和角度
发表于 2014-10-27 20:17:13 | 显示全部楼层
txh007 发表于 2014-10-27 20:01 static/image/common/back.gif
, V) w) o1 Z8 x是的,但领导要求是长度和角度
- [. T; a! r9 s/ m% U
我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
 楼主| 发表于 2014-10-29 12:46:02 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 20:17 static/image/common/back.gif& D# x, Q) ?  E$ D% g: q$ O* B. y9 ^
我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
: k$ `% d. I" s* ~* y( @
我是要做具体工作的人,他嘴巴一动就行了,我总不能对领导说你做,我不会做的
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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