QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我现在要把这凸轮以一度一个点,来采集数据,
# [! V  a& {* n4 n我现在用的方法是以凸轮的圆心画根长线,把这长线转过一度,量长线与凸轮轮廓线交点到中心的位置来采集凸轮数据,有没有好的方法或者小软件。谢谢
发表于 2014-10-22 10:18:39 | 显示全部楼层
用2d扫描出来就可以了
发表于 2014-10-22 10:21:42 | 显示全部楼层
把那根线阵列360个,然后用CAD自带的计算器获取坐标点或极轴长度,360个数据是有点麻烦……编个软件比较好……
发表于 2014-10-22 12:03:49 | 显示全部楼层
高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。
" B, s0 C$ v3 |$ Q7 }对交点使用约束,对直线标注极角,然后对交点进行坐标标注。; i( \3 n$ X: h+ f/ R7 L
上述设置好后,更改极角尺寸为0~360的每一个角度,此时交点的标注尺寸自动更新。2 J' j  Q, G- A5 r8 o! q/ R( A
剩下的就是自己记录坐标数据了。
2 U: V) n0 V8 E* t2 A; y360个,确实多了点!
 楼主| 发表于 2014-10-22 12:15:48 | 显示全部楼层
我爱用acad 发表于 2014-10-22 12:03 static/image/common/back.gif
5 R4 J# B0 n9 M  j( p, y! s; R高版本ACAD中,画出此长线后,设置凸轮的圆心为坐标原点,并设置尺寸标注关联。
: B% b. P& M2 p: H3 v对交点使用约束,对直 ...
, H3 p$ B! L' W$ X& l( Q* e  S
能把怎么设置的详细说一下嘛5 p8 @) F9 y6 T7 X. E9 K# E+ N
发表于 2014-10-22 12:37:05 | 显示全部楼层
现编写了一个程序,试一下(运行时稍有点卡):
2 v3 p  w& o7 c- B' D" u: k- j9 [) F3 \; C
aa.gif , s4 H+ u/ i  t; \' [6 F
发表于 2014-10-22 12:38:18 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:05 编辑 & R8 s3 Y6 z1 K

' F9 S# v! K' A4 C/ W, ](defun c:tt()
  {+ Q+ K; U2 f$ u0 l  (setvar "cmdecho" 0)
: c3 }' f4 G; B4 D  (setq e(car(entsel"\n选择凸轮曲线:")))
! r- h3 L) D( Q4 O7 V  (setq ei(car(entsel"\n选择投极轴直线:")))
- d# I6 h* ~3 K3 d1 n  (setq O(getpoint"\n选择凸轮中心点:"))0 f0 w7 O" e3 }0 u8 P4 S
  (setq X (car O) Y (cadr O)) (setq n 1)
! `5 V. T& f0 Y3 E& d! D4 H  (repeat 360
8 l: k# `% N: A3 x, g3 k% H* R    (command "rotate" ei "" O 1)
9 U. k! o4 q: N6 N. N: R# G1 P: r7 s    (setq Point (trans (car (GetInterPointlist ei e)) 0 1))
$ }! f7 g) k+ r* P- u' T; @- M( j    (command "Text" (list X Y) "5" "0" n)
, a( |9 p( z0 I3 l6 S# s3 a    (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))
& o" |/ H6 a" s. J: `. y5 _( V    (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数
) \: X1 P3 ?8 u& H* [) j' ~    (setq Y (+ Y 10))
8 p4 V. d- J( X- i: k" A2 e/ W    (setq n (+ 1 n))% K3 h0 |( \, H
  )  
' R: B+ S0 f- V& {6 L- _" ^  (setvar "cmdecho" 1) # U7 L# E/ _* f) i9 z, j
  (princ)
6 c" d5 @* w! p0 T  ^: I)  |6 |* F& @" C6 S( j
(defun GetInterPointlist (ent_1    ent_2    /      ent1     ent2$ D- P* N  A) s3 ]: e
     ax_ent_1 ax_ent_2 intpoints       i
* m2 N8 z" ]( q% ~+ ~; B     j    k     disp     int_list, y  z% h0 Q/ }7 [, E2 D
    )9 v0 o3 R: ]  `% ~+ I! _
- x) a& U& z& ]1 t0 Y
  (setq int_list nil)
1 K5 Z0 m  o7 w' B5 S9 ]9 g) t. {6 J  (setq ax_ent_1 (vlax-ename->vla-object ent_1)# G& \4 y) x/ Y2 q! \
ax_ent_2 (vlax-ename->vla-object ent_2)3 c1 r( W" K+ Q% E4 |' O. }8 G6 m
  )
" i% i3 K% ]8 o( e6 _+ W4 u  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))* x- M0 l" _' a3 x8 ?6 A
  (setq intpoints (vlax-variant-value intpoints))
8 k; I/ v& g- E  e; S" ~  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
5 e) C3 E' {) ^    (progn
" v" V* P8 t* Z7 O% `5 @      (setq i 0)
; `) Q- ?# c) Y( o" D# n8 b/ J      (setq j 0)% R; c8 L5 r/ E; t( G( U
      (setq disp "")" {4 l9 u, P* p: o& Q
      (repeat
: c* h: d% `  l8 r) i: A& w3 ^ (/ (+ 1
- [; \+ g% l, q       (- (vlax-safearray-get-u-bound intpoints 1). S; F5 N  P. n" h* a" G6 d
   (vlax-safearray-get-l-bound intpoints 1)0 [/ W6 \) x" e5 y3 |
       )
% \: w6 J# L/ S) r    )
8 o& E/ V7 o. ^6 {( [    3
: X# M4 X% b) [8 ^% A )4 S1 c, ~1 t. E& g, `
  (setq
, L, j4 |1 t1 M7 z    disp (list
( b- m. ^  k, Z# H% b: Q    (vlax-safearray-get-element intpoints j)# X) }+ c+ |# Z, i$ P# ]

4 h: O! x: y3 x" ?/ \9 r    (vlax-safearray-get-element intpoints (+ 1 j))% j7 D/ @3 n/ d. W

) C% n4 }3 S! E  d    (vlax-safearray-get-element intpoints (+ 2 j))5 U! G- {& p6 V. P' r- E; ]
  )
9 i9 M+ h0 ]  X: n  )' ?9 |2 f" {: }. V
  (setq i (+ 2 i)
3 ^5 j8 P' @& _$ D# M5 `        j (+ 3 j)6 O' K0 x3 ]! q
  )6 s$ ?: x7 Z# n6 Y& \
  (setq int_list (append int_list (list disp)))0 p. S! A4 H& `' {
      )
9 [' W9 \' A( B    )- k5 g5 @* t# m5 _6 U- q& I
  )  J9 |1 h4 N% S3 \, n: w# x
  (setq int_list int_list)
5 \3 B5 t( k* Q2 E2 a% A)  Q6 M/ v7 c" p) |- B$ d

4 p- [% y* `  `$ [
- R3 t4 E) \$ Z8 s$ t/ I) \% [  c

点评

复制代码请到#9楼  发表于 2014-10-23 10:55
发表代码请使用"插入代码"功能,否则帖子中会有乱码,不便于网友复制代码  发表于 2014-10-23 10:54
发表于 2014-10-22 13:18:39 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-23 09:03 编辑
8 m" T5 I2 p, z- N# f1 z
' q  `& i9 `" \( D% [这个是保留两位小数的:& X% s' D' M8 l6 K. l

% {# x) l+ L/ o6 ^ aaa.gif

评分

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

查看全部评分

发表于 2014-10-23 10:52:52 | 显示全部楼层
本帖最后由 woaishuijia 于 2014-10-23 10:56 编辑
3 w- c$ M4 k$ {
# M' g. P5 U  F! N代#7楼重帖代码
  1. (defun c:tt(). q4 E, Q- r. {6 F$ r
  2.   (setvar "cmdecho" 0) 8 Q6 p: k" A, b6 {; x
  3.   (setq e(car(entsel"\n选择凸轮曲线:")))" M/ [/ \& |0 O" p2 E5 g
  4.   (setq ei(car(entsel"\n选择投极轴直线:")))( W6 l3 R$ |$ b3 d( d
  5.   (setq O(getpoint"\n选择凸轮中心点:"))
    . q0 m" r1 V) N) n! |/ t
  6.   (setq X (car O) Y (cadr O)) (setq n 1)
    $ H" M  V* @0 b" v
  7.   (repeat 360+ H1 V; }- Z5 }# L/ j4 V
  8.     (command "rotate" ei "" O 1)
    & e6 O/ X! u" [
  9.     (setq Point (trans (car (GetInterPointlist ei e)) 0 1))9 k" U% j  l, p' R: _' C
  10.     (command "Text" (list X Y) "5" "0" n)
    1 w7 j' J$ L% U! v; I4 K. G
  11.     (command "Text" (list (+ X 20) Y) "5" "0" (rtos (car point) 2 2))
    9 [7 w# D' u9 ^
  12.     (command "Text" (list (+ X 60) Y) "5" "0" (rtos (cadr point) 2 2));保留两位小数  V9 I- i( l# a8 K9 F* Z2 z
  13.     (setq Y (+ Y 10))
    # a4 r" n* S; H' o& R: O4 i6 g
  14.     (setq n (+ 1 n))+ s+ U7 X3 D2 Y0 K5 x; {
  15.   )  + A0 ]! [) V& Q/ I* P- m
  16.   (setvar "cmdecho" 1) : N* ]$ ^' M  O7 J/ Z
  17.   (princ)! R2 Z- o# h3 T- A3 R$ _
  18. ): T0 {0 o! ]1 m* A1 t4 d
  19. (defun GetInterPointlist (ent_1    ent_2    /      ent1     ent23 e9 G4 y# V9 R' {
  20.      ax_ent_1 ax_ent_2 intpoints       i+ Y& d) `6 s4 D, g
  21.      j    k     disp     int_list# }4 h0 ]7 A& F) [  o
  22.     )2 X. \$ D2 s$ D

  23. * O& Z$ S, P8 E
  24.   (setq int_list nil)" U1 S+ S5 V5 T2 F
  25.   (setq ax_ent_1 (vlax-ename->vla-object ent_1)
    8 s& m2 J4 {. i+ x2 B
  26. ax_ent_2 (vlax-ename->vla-object ent_2). M8 O1 J  Q& G0 E! m8 s
  27.   )+ e" x. p- t! j: s
  28.   (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))! N7 z. r& c1 w/ I9 p
  29.   (setq intpoints (vlax-variant-value intpoints)). i1 V4 X, e" _
  30.   (if (> (vlax-safearray-get-u-bound intpoints 1) 0)4 i) p" K: l) Q: Y, ?
  31.     (progn7 n' @( T) e  Z! @) U6 s0 Q/ i# [( d
  32.       (setq i 0)
    ; R6 ^! H' m& }& ?
  33.       (setq j 0)
    : c: E; }4 V! P
  34.       (setq disp "")
    ; B0 v* ^1 y9 C% U. }9 d2 \2 \
  35.       (repeat0 E! F; U9 c/ c7 t. K" O& G$ O( p. ~
  36. (/ (+ 14 }' O* [( P- p0 _
  37.        (- (vlax-safearray-get-u-bound intpoints 1)1 D8 q$ r- T) D" H' I4 M
  38.    (vlax-safearray-get-l-bound intpoints 1)0 U! y1 X  {( i3 n; N
  39.        )
    8 i- R- N6 ]& Q7 G, u- d
  40.     )
    , Z3 |% C, `2 ?; j
  41.     3" G8 c, u  B- B5 Y' {
  42. )! E2 c/ k% D. O; E/ k! @
  43.   (setq
    8 Z. g8 C7 p, v3 q
  44.     disp (list/ P# e- B( u( I% S) ]5 Q  _2 E) h
  45.     (vlax-safearray-get-element intpoints j)
    & v/ ^: I$ y9 `7 y( N8 ~
  46. * s4 \/ C8 I( F
  47.     (vlax-safearray-get-element intpoints (+ 1 j))
    : g4 r: K) q1 r  N

  48. , Y. t+ Y2 q: P
  49.     (vlax-safearray-get-element intpoints (+ 2 j))
    # S! {7 M9 ^3 m
  50.   )7 Z% P- z: P! y/ u: Y8 N3 M- o
  51.   )! Z! i& ]4 e4 k, r% L
  52.   (setq i (+ 2 i). {% e' R- I0 M% G3 q
  53.         j (+ 3 j)
    + p' g! I" v% z6 ~! W" @
  54.   )
    4 ]* K. g1 J/ \7 @. f* O8 u
  55.   (setq int_list (append int_list (list disp)))! A& E1 Y0 S) G( n
  56.       )3 g% G% L1 P: H$ Y; ~) C0 K
  57.     )
    3 w5 ~1 B. }( q7 [+ |0 I( m
  58.   )( o: c. c5 t2 S9 ^2 S0 j& N2 \
  59.   (setq int_list int_list)
    + S  W% B; c  H7 Y
  60. )' ^; k; y) {1 v. ^! D' s
复制代码
 楼主| 发表于 2014-10-23 21:14:11 | 显示全部楼层
xhq1954425 发表于 2014-10-22 13:18 static/image/common/back.gif7 S# I/ g8 m4 O3 |3 L8 [) i, G, b
这个是保留两位小数的:

' @) e' y8 H& M, E2 x谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
 楼主| 发表于 2014-10-23 21:18:09 | 显示全部楼层
本帖最后由 txh007 于 2014-10-23 22:33 编辑
+ U( r8 f: C0 ]+ \/ [* d/ p' D, l
woaishuijia 发表于 2014-10-23 10:52 static/image/common/back.gif
5 U3 ?- X2 e8 J# z+ |代#7楼重帖代码
  W$ ]) Z, Z' \% U& q0 S) T# Q
我想问一下,这代码怎么用呢,复制进去不会用
. C7 L1 I- F0 e+ e: I: n; I
发表于 2014-10-24 08:55:27 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-10-24 09:06 编辑 ' S5 {+ X! E5 x9 \0 I+ V+ ^* K5 P
+ w& }) w0 j3 z: `* r! k' `
要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来看这个贴(好像是你发完贴之后好多天就不管了)……?先发一个改进一点的,等你批准说行了,我再发程序,也避免改来改去的:
5 n/ L$ `' j3 k% s8 b# X+ y* m6 e3 z5 O
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& h  ?( O& e- n2 a
楼上 搞二次开发的吗?  厉害
$ [, @: P% z& C/ S0 q: l
我不厉害,二次开发只是业余爱好,本人是从事制图教学工作
发表于 2014-10-26 09:45:44 | 显示全部楼层
txh007 发表于 2014-10-23 21:14 static/image/common/back.gif
) m2 B1 J( g1 M% w谢谢,我不要坐标,我要的是每一个角度的凸轮轮廓线到中心的距离
2 d6 Q( ~( a' c
你要的不是坐标位置吗,莫名其妙
 楼主| 发表于 2014-10-27 12:33:18 | 显示全部楼层
本帖最后由 txh007 于 2014-10-27 12:39 编辑 % q7 Q; k9 l8 U1 O; p# g
xhq1954425 发表于 2014-10-24 08:55 static/image/common/back.gif$ X: J8 S; m; z# o3 E6 k
要数据的话,应该将数据写入记事本中,这样便于复制使用,但不知道是不是你要的形式?也不知道你何时再进来 ...
$ P; B2 _/ N$ L, M/ `
就是这样的' R4 z0 V. |* X* Z9 e
就是把精度为小数点后的第4位如100.6666
) J( ^: Q' j9 z4 E3 Z谢谢,高手啊
' k7 h! \$ C* {# R  o我这两天一直在车间。没有看论坛的回复,2 ~1 X7 z" g* c9 t$ w5 F8 E+ Z% l3 W- P/ u" E
86156046是我的QQ
 楼主| 发表于 2014-10-27 12:37:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-26 09:45 static/image/common/back.gif
# N& R- p6 Y8 D你要的不是坐标位置吗,莫名其妙
. k" P1 ~4 P" e
我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为98.3264,就是要的是边到中心的距离
发表于 2014-10-27 15:58:49 | 显示全部楼层
txh007 发表于 2014-10-27 12:33 static/image/common/back.gif
5 i5 h' |7 F; A6 d- `4 V就是这样的! [: P$ G, S7 }# i$ O
就是把精度为小数点后的第4位如100.6666
$ Y/ W/ Z, G# I谢谢,高手啊
; A6 a! t1 l( c" A
你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?
发表于 2014-10-27 16:01:06 | 显示全部楼层
txh007 发表于 2014-10-27 12:37 static/image/common/back.gif
% K# x3 F( t2 R& f' s# V. ]我要的是极轴长度,凸轮边到中心的距离,如10度凸轮边到中心的距离为98.3253,11度凸轮边到中心的距离为9 ...
' {' |5 E: W# r/ u9 h% _5 M( O3 F! `) ]
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等
 楼主| 发表于 2014-10-27 20:00:58 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 15:58 static/image/common/back.gif* t. R* n3 z0 _
你知道国内有多少设备能加工到小数点后四位的,你做凸轮你的加工设备能识别到小数点后四位?

, t2 r# v: ~' j. Y* D这是我们领导的意思,我也只能照着做。其实小数点后三位就够了
 楼主| 发表于 2014-10-27 20:01:51 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif! I7 q- O2 k, M7 t- r) H$ P
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等

, c& V: T( G( g; f' A# S是的,但领导要求是长度和角度
 楼主| 发表于 2014-10-27 20:02:30 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 16:01 static/image/common/back.gif8 J' h% u5 t( h! T
极坐标也是坐标,只是以角度加距离表示,坐标分好几种了,球坐标,笛卡尔坐标,极坐标等

& b; G' g  {( g  W- P是的,但领导要求是长度和角度
发表于 2014-10-27 20:17:13 | 显示全部楼层
txh007 发表于 2014-10-27 20:01 static/image/common/back.gif0 S  H" i$ B' u2 ?* m! K& r
是的,但领导要求是长度和角度

7 ^2 i) g# d: E6 ?, N9 {我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢
 楼主| 发表于 2014-10-29 12:46:02 | 显示全部楼层
zhuyi0829 发表于 2014-10-27 20:17 static/image/common/back.gif
% }4 ~$ k. K/ t7 q* ]+ g6 C我觉得很奇怪,是你提问题还是你领导提问题啊,既然都是你领导的意思,叫他解决问题啊,发什么帖呢

! O4 b' r7 p3 z/ {我是要做具体工作的人,他嘴巴一动就行了,我总不能对领导说你做,我不会做的
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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