QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 7503|回复: 32
收起左侧

[分享] 已知中心及其上三点,求作椭圆

[复制链接]
发表于 2015-1-14 00:13:04 | 显示全部楼层 |阅读模式 来自: 中国北京

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

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

x
本帖最后由 gongwen0519 于 2015-1-14 00:21 编辑 / S5 T! B8 J/ u7 I$ m

& i7 z# I5 v. m2 q- {本题是继这个http://www.3dportal.cn/discuz/fo ... ead&tid=1449246【作出最长值(不限软件)】帖子而来,该帖椭圆中心可知,同时也可以随便得到椭圆上的三点。* B5 A0 F; M2 C" v
4 e% a" O) ]. v. I. b
几何作图作出OX、OY的方向与长度即可,ACAD则画出整个椭圆:
+ \3 ^5 Z8 p; q: h$ x; c: e1 x+ n) j3 h3 n8 D/ J+ V9 F- P2 t( ^
(这类问题在工程实际中很实用。)5 j% [) s+ {! N7 T
# h3 \' d: c% |: g& r8 X
tuoyuan.png
/ G9 D* W/ G9 P  w1 a% u3 `& ^. @

评分

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

查看全部评分

发表于 2015-1-19 12:32:28 | 显示全部楼层 来自: 中国辽宁抚顺
怎么没人回呢?
  1. Sub C3PE()
    : P" E5 X- x9 B4 A8 m+ V' f" j8 X2 F2 c
  2. Dim P0(2) As Double, P1 As Variant, P2 As Variant, P3 As Variant, P4 As Variant
    * L! z7 V. u$ [+ r# `' O0 B
  3. Dim X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, X3 As Double, Y3 As Double: h8 h& L- \# X8 U
  4. Dim A As Double, B As Double, C As Double, F As Double, Ang As Double, R1 As Double, R2 As Double
    9 q3 n3 ?/ h! e1 I
  5. On Error GoTo 10
    . U& T( @; _1 V0 ^$ S
  6. With ThisDrawing
    ( V$ |: }8 I8 a% k, F' y. h" A8 C
  7. P1 = .Utility.GetPoint(, "指定中心点")
    8 K0 o# `' c  [- W' M8 ?
  8. P2 = .Utility.GetPoint(, "指定第一点")& d. Q& F8 t; c* N+ {- N7 @( }
  9. P3 = .Utility.GetPoint(, "指定第二点"); y7 ]' j. B4 U0 [+ _( }% J5 |
  10. P4 = .Utility.GetPoint(, "指定第三点")) X$ g2 S- d' d
  11. X1 = P2(0) - P1(0)' v! d" D0 c4 Z
  12. Y1 = P2(1) - P1(1)
    " o' A6 \! j1 \9 r; ]3 _/ [: z- {
  13. X2 = P3(0) - P1(0)2 v% K3 Z! G  f+ M* @  ^0 b$ A
  14. Y2 = P3(1) - P1(1)" f' i" L* O3 W2 U( _1 L
  15. X3 = P4(0) - P1(0)
    * h, F9 A" {/ v6 Q
  16. Y3 = P4(1) - P1(1)$ @- O+ B3 T- K" S- J! L, a6 F
  17. A = (X1 * Y1 - X2 * Y2) * (Y1 ^ 2 - Y3 ^ 2) - (X1 * Y1 - X3 * Y3) * (Y1 ^ 2 - Y2 ^ 2)
    ! ~! O) {( A6 B  P/ K3 }5 g+ [
  18. If A <> 0 Then
    * p8 ~$ R1 o5 H$ U+ g3 s; d
  19. B = ((X1 ^ 2 - X2 ^ 2) * (X1 * Y1 - X3 * Y3) - (X1 ^ 2 - X3 ^ 2) * (X1 * Y1 - X2 * Y2)) / A
    5 }% E! r4 B# w7 `
  20. C = ((X1 ^ 2 - X3 ^ 2) * (Y1 ^ 2 - Y2 ^ 2) - (X1 ^ 2 - X2 ^ 2) * (Y1 ^ 2 - Y3 ^ 2)) / A% Q. U* _- D; ]/ f
  21. F = -X1 ^ 2 - B * Y1 ^ 2 - C * X1 * Y1" [4 E3 ^* ?% A0 Z5 S1 S
  22. If C = 0 Then
    6 K* u6 p# P- S1 k1 s0 c
  23. If B > 0 And F < 0 Then& ^4 q) i3 _! h& \& ]: j
  24. Ang = 0
    $ C! v* e( l! M! L- s, V
  25. R1 = Sqr(-F)4 u, J/ W4 X  \% }  y# X, ?' x2 ~
  26. R2 = Sqr(-F / B)
    1 _* o/ L/ y) N/ G9 L: r
  27. Else
    * R2 o; |" L+ M; `, S" Z4 Z
  28. Exit Sub3 G- t9 s, h0 t: M
  29. End If
    ) \$ r6 t/ }( z4 X/ n/ [
  30. Else
    4 R! H5 _. \0 G/ q7 l4 z. Z' X
  31. If B = 1 Then% b, x8 c  x% R
  32. If F < 0 And C > -2 And C < 2 Then. C+ T/ ?8 y- m: P# T
  33. Ang = .Utility.AngleToReal(45, acDegrees)
    1 g; ]& \0 a4 c! f/ O  X, l- |
  34. R1 = Sqr(-2 * F / (2 + C))3 e8 e+ a* B  w$ I# G
  35. R2 = Sqr(-2 * F / (2 - C))
    & K, ~& B& m' k' K2 L7 B, I
  36. Else0 N( p6 Z( B5 A
  37. Exit Sub6 K* g/ r! }8 S4 q: e
  38. End If7 I+ A1 h& |9 ^) N4 `
  39. Else& d; t9 \9 ~0 p% A
  40. Ang = Atn(C / (1 - B)) / 22 O. p5 z! A8 \$ \+ W4 [
  41. If Ang < 0 Then Ang = Ang + .Utility.AngleToReal(90, acDegrees)
    2 o3 Z* s3 C0 Z, Y) y
  42. If B > -1 And F < 0 And C > -(1 + B * Tan(Ang) ^ 2) / Tan(Ang) And C < (B + Tan(Ang) ^ 2) / Tan(Ang) Or _
    ) Z" b# |/ X" e4 j8 A4 J1 s6 R- a
  43. B < -1 And F > 0 And C > (B + Tan(Ang) ^ 2) / Tan(Ang) And C < -(1 + B * Tan(Ang) ^ 2) / Tan(Ang) Then
    + p& }/ R1 {  e6 q6 [
  44. R2 = -F * (1 + Tan(Ang) ^ 2)) @1 u; G- ^8 I) W" B) o" t
  45. R1 = Sqr(R2 / (1 + B * Tan(Ang) ^ 2 + C * Tan(Ang)))
    0 e+ g7 }3 Z2 L0 y- k  z, K
  46. R2 = Sqr(R2 / (B + Tan(Ang) ^ 2 - C * Tan(Ang)))/ b6 Y- H* _7 i. x4 I; }
  47. Else' W. `4 K3 o5 e
  48. Exit Sub) W8 m/ v! S' x4 Y7 X  p5 y, u
  49. End If
    8 E; ^: c: G* ]+ S( v, `
  50. End If
    8 w% m8 O8 q9 B% E) `' B
  51. End If# O8 q5 q" |  h* h2 h9 j: J! F
  52. Else
    ( v5 E3 W5 f6 N
  53. Exit Sub* z0 Z# S2 Z2 R' w' L- S; F6 p
  54. End If6 ^7 v. q! A/ u! W/ E
  55. If R2 < R1 Then
    * {; P& l- e' I
  56. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang, R1), R2 / R1
    : Y4 v8 l3 I7 F( l6 l
  57. Else! h2 q$ ]( ?, D
  58. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang + .Utility.AngleToReal(90, acDegrees), R2), R1 / R26 ~; [2 I: C% E; H& Z! b7 {& u! s
  59. End If3 D+ l% n& E- H3 l' x) v( j
  60. End With& F+ D7 Z( j0 }! q2 ?* u" s6 z
  61. 10 End Sub
复制代码

评分

参与人数 1三维币 +10 收起 理由
2005llnn + 10 技术讨论

查看全部评分

发表于 2015-1-19 14:23:08 | 显示全部楼层 来自: 中国湖北黄冈
已知椭圆的中心点,将3点代入椭圆的一般方程,用解析几何的方法计算即可。
发表于 2015-1-19 19:43:35 | 显示全部楼层 来自: 中国辽宁营口
本帖最后由 woaishuijia 于 2015-1-19 23:24 编辑
7 P0 S4 J  v7 y3 d; q3 V7 i) V* W6 `& G4 W* u
再来个LISP
  1. (defun c:c3pe
      k$ J: k: \, i' q9 J# R% ]" w
  2.        (/ old p0 p1 p2 p3 p4 x1 y1 x2 y2 x3 y3 a b c f ang r1 r2)
    ( F' _$ {) g3 a
  3.   (setvar "CMDECHO" 0)5 d- I" H! A& a0 f$ k9 e1 V6 S
  4.   (setq p0 (list 0 0 0)" V& i! N1 W  X* p1 m7 \
  5. p1 (getpoint "\n 指定中心点:")
    5 S( N7 ?# F+ c
  6. p2 (getpoint "\n 指定第一点:")
    2 ]$ c' _  Q" n! H- J- O# W! S; f2 ^
  7. p3 (getpoint "\n 指定第二点:")
    & Q" w& ~! \3 b1 v1 A5 I0 `
  8. p4 (getpoint "\n 指定第三点:")2 J% l; z- A0 |! P
  9. a  (car p1)5 H9 ^4 x5 y! y7 t8 [' i8 J5 R
  10. b  (cadr p1)( R+ M5 v7 I: E! ~& f7 v1 t
  11. x1 (- (car p2) a)2 m3 ?9 m6 P' i
  12. y1 (- (cadr p2) b)- b) U1 B5 g: F, [5 L
  13. x2 (- (car p3) a)
    " ^0 d! D! V0 a& D3 `: D$ b1 R* Y
  14. y2 (- (cadr p3) b). \6 {8 ?! J0 \. v4 X
  15. x3 (- (car p4) a)
    + m* p1 i% k( l! W1 n
  16. y3 (- (cadr p4) b)4 x; R0 w# s) \% W
  17. a  (- (* (- (* x1 y1) (* x2 y2)) (- (* y1 y1) (* y3 y3)))
    . }- f# Y' U8 _) a6 M/ X4 F
  18.        (* (- (* x1 y1) (* x3 y3)) (- (* y1 y1) (* y2 y2)))& D4 ?7 ~* n  f  R. \, G4 d
  19.     )
    7 i& F5 y1 f2 P
  20.   )
    & T: R+ ~$ I- N
  21.   (if (/= a 0.0)
    9 w- A/ p4 ~! M( Y$ o8 M
  22.     (progn; n1 J$ Q, }- o  d+ v6 _
  23.       (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- (* x1 y1) (* x3 y3)))5 e9 K' G* H- o2 P7 f( {8 p* x) \* G
  24.       (* (- (* x1 x1) (* x3 x3)) (- (* x1 y1) (* x2 y2)))
    5 p; m* P7 Y" R% o! c
  25.    )
      C/ f1 d. `! i3 r5 y' x* n
  26.    a5 @3 W* |4 X, d' S2 C
  27.        )
    + q0 m* |' l, u2 @$ j, g* p
  28.      c (/ (- (* (- (* x1 x1) (* x3 x3)) (- (* y1 y1) (* y2 y2)))  l% n% I; e! z' \: p% b
  29.       (* (- (* x1 x1) (* x2 x2)) (- (* y1 y1) (* y3 y3)))
    0 `0 t0 {2 t7 n4 V5 G6 y
  30.    )
    4 w4 r- G7 W. B# r0 b
  31.    a
    * A" N9 A  F4 R* c: u. Q% ?
  32.        )
    + Y; c6 y, t  _% _" A* X; S
  33.      f (- 0 (* x1 x1) (* b y1 y1) (* c x1 y1))
      \. o( ^3 U' l- z6 M
  34.       )
    ( e& z) J. H9 j' k4 w
  35.       (if (zerop c)
    ) [) i- Z) |# ~. N
  36. (if (and (> b 0.0) (< f 0.0))4 _: j% S2 i0 @" |, I" p' N( ]
  37.    (setq ang 0.01 y, c, r% j3 f, O$ C# `/ Q
  38.   r1  (sqrt (- 0 f))
    ) R4 J% c: n1 t( w! m5 |3 ^
  39.   r2  (sqrt (- 0 (/ f b)))
    + Q# K" ]: Q6 ]% `0 {2 g. w( l
  40.    ); @- F# H* Q$ R1 V0 ], ^" f' o
  41. )
    5 I* W' c9 A. `" c; F& q+ V  O' @4 s
  42. (progn
    % g! z' [# G* A8 L6 a& L
  43.    (if (= b 1.0)
    8 h0 A( `' j, g& ?/ ^$ T
  44.      (if (and (< f 0.0) (> c -2.0) (< c 2.0))/ `7 m0 D2 {' J( D: s1 A
  45.        (setq ang (/ pi 4)+ R/ E$ k5 |  T9 N% A$ F
  46.       r1 (sqrt (* -2 (/ f (+ 2 c))))
    / P! f- z& P1 m# N+ S* n* U
  47.       r2 (sqrt (* -2 (/ f (- 2 c))))* \7 R1 u+ B4 k, E" `
  48.        )2 c, _6 v" ~) @; l8 w9 H* s
  49.      )
    + |8 H% \4 O6 J, ]/ L9 `; Z7 z
  50.      (progn$ T  |3 s# g, I( F$ e
  51.        (setq ang (/ (atan (/ c (- 1 b)))
    0 Z7 E0 @" L, i' P
  52.       2
    2 V! S" I' p, x! \9 r
  53.    )
    . A0 t5 V+ l0 m9 o" V/ o
  54.        )
    ' t$ Y, j% i- X# |3 g. O# T
  55.        (if (< ang 0.0)) D  ?: E2 W& g3 a
  56.   (setq ang (+ ang (/ pi 2)))5 g- j  ~' u0 I" }5 |) s7 t
  57.        )
    & j! X* F3 D7 a6 k! }/ Z* \+ F
  58.        (setq a (/ (sin ang) (cos ang)))! _) `5 W3 S2 o9 H5 F1 U2 K
  59.        (if (or (and (> b -1.0)# }2 M$ Z4 k+ {' q* R, c
  60.       (< f 0.0)
    2 U' O- z! f) o. {$ r
  61.       (> c (/ (- -1.0 (* b (* a a))) a))" z) Z8 ^2 ~( T. n( n' G  U
  62.       (< c (/ (+ b (* a a)) a))) L9 |( L4 g7 K; h
  63.         )) _7 X' ~! o4 ^; @# ~3 O: w
  64.         (and (< b -1.0)( X% q# E& A9 G
  65.       (> f 0.0)+ O' _% k5 i) o5 P; a2 Q: m/ m
  66.       (> c (/ (+ b (* a a)) a))4 [& x1 M- ^$ u# h, x" P  f  p
  67.       (< c (/ (- -1.0 (* b (* a a))) a))
    3 R# L8 G7 U% k; X/ x
  68.         )
    * G/ U" k* F' m* c& F
  69.     )
    - K+ N; y1 ?+ ]3 S$ W3 E) Z6 A, Q2 R
  70.   (setq r2 (* -1 f (1+ (* a a))). v7 W1 L: z$ P- T3 F
  71.         r1 (sqrt (/ r2 (+ 1 (* b a a) (* c a))))
    1 ]' H) D& M& s# G
  72.         r2 (sqrt (/ r2 (- (+ b (* a a)) (* c a))))( N7 n: V4 b( V6 x5 a# T' X
  73.   ): x0 N: Y0 d- r
  74.        )5 W, p, u0 x8 c! E6 y( @7 t# L  I
  75.      )
    ( A& G. r$ O2 G/ n; ]) X$ ~& C, `( n
  76.    )$ O8 R3 M1 j1 I9 S) O8 T. ?
  77. )9 s' ]3 p+ N: d# o
  78.       )
    5 V4 o: v7 `1 J* N) e( |: p
  79.     )
    ( U" T% |9 I& U5 J4 ~# M# O
  80.   )
    / O' X8 Z( _0 p
  81.   (if r1& N0 Z# c* {& G2 _/ Y3 M
  82.     (progn
    6 p% k# M, a$ L3 J7 V1 Q. p
  83.       (setq old (getvar "OSMODE"))7 T( W1 O8 V: m+ a
  84.       (setvar "OSMODE" 0)
    & c/ u6 X5 R  S5 V
  85.       (command "ellipse"
    / Y4 h; S' x0 |& R5 b! V
  86.         "c"( U  P  L5 N. Y8 a/ z# p
  87.         p1
    ) P4 `: @, G1 B) u, Z0 }2 C
  88.         (polar p1 ang r1)" e( e# S! f% ^+ I, o
  89.         r2& Z+ m$ r$ b$ d; }' F, b
  90.       )
    ; ?5 I: s/ l" g* ^5 h* m$ B
  91.       (setvar "OSMODE" old)
    " f8 g. J6 y, w2 ?/ q- f
  92.     )
    4 e9 g9 k0 M+ L
  93.   ); R$ Y; u  `) b, y
  94.   (princ)9 [6 o- l0 ]8 I  F+ y% `
  95. )
复制代码

点评

这是什么?代码?用于CAD?  详情 回复 发表于 2018-3-15 10:26

评分

参与人数 1三维币 +10 收起 理由
2005llnn + 10 技术讨论

查看全部评分

 楼主| 发表于 2015-1-19 20:34:06 | 显示全部楼层 来自: 中国北京
tangcarlos3d 发表于 2015-1-19 14:23 static/image/common/back.gif+ [  O( ^" `" r2 ?( G. H) B
已知椭圆的中心点,将3点代入椭圆的一般方程,用解析几何的方法计算即可。
" A  S6 z. Z% o8 i
可以不解方程,有纯几何方法解的(指能作出椭圆的长短轴的方向与长度)。
 楼主| 发表于 2015-1-19 20:45:01 | 显示全部楼层 来自: 中国北京
本帖最后由 gongwen0519 于 2015-1-19 20:55 编辑
! H# `/ z' ?+ I, V0 f& p
woaishuijia 发表于 2015-1-19 19:43 static/image/common/back.gif
* u* a) l$ R$ g2 y; X6 J6 H再来个LISP

9 O, z$ B: O' ^& n& i" X$ {' l; s4 l( S& k- k
woaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码,手工复制或清理太费时间),谢谢。。
  ]" I" q' g, f! v. ^. D
7 a6 O7 Y) \; ]8 ?0 u' Y看来大家和曾经的楼主一样,看到圆锥二次曲线就生威蹙眉。
- M' E4 b9 x* n+ i4 T  h9 S4 ^9 y7 U8 f0 @4 Y! Z
如果用尺寸约束与驱动,把椭圆约束到这些参数上也是可以的呀。) I! H' h7 L' M+ o
! D% {- J4 J1 @: Q! e! O; `) i
谢谢woaishuijia版主的VBA与lsp,今后工作中我就用您的程序了。
" r3 C( H& V  F* j
6 {  T# b9 }! p! p  p; `) E' u为增加活跃一下的气氛,我还是稍后整理公布一下过程不是“很”复杂的几何作法吧。
发表于 2015-1-19 22:02:32 | 显示全部楼层 来自: 中国辽宁大连
能给出长轴和短轴的公式吗?和水平角度的计算
发表于 2015-1-19 23:10:51 | 显示全部楼层 来自: 中国辽宁营口
本帖最后由 woaishuijia 于 2015-1-19 23:25 编辑
  n* o1 o( e6 V1 J1 A
gongwen0519 发表于 2015-1-19 20:45 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 [# {+ l5 M9 J" ^$ j$ [& K, Lwoaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码, ...

1 m+ G; U( k% K/ g+ l6 W  R6 H4 i$ H, h% o( L* U5 w
C3PE.rar (4.96 KB, 下载次数: 25)
 楼主| 发表于 2015-1-20 00:04:33 | 显示全部楼层 来自: 中国北京
lisc2000 发表于 2015-1-19 22:02 static/image/common/back.gif
# u, e# J! \5 J) q, T能给出长轴和短轴的公式吗?和水平角度的计算
' H, W' V" a) s$ G: `
已经整理好一种几何解法:
: H* U# J( `, z5 H2 N8 z( F8 y5 A2 o/ A0 ], J+ e& A
前面的说明:
4 e8 Y& _2 H) k$ H1 [, w8 _) ]; Z' [4 m  i4 E
d001.png 2 ]8 {" l6 P0 K5 r8 v' }0 _
5 j, m1 ~. X. z5 {" d  J3 i/ P
作图过程:
1 B9 j/ D" u, p7 _
' M  [' m# }3 q/ ~ d002.png
* |: w1 H/ `6 e' u. p% w. ]5 k, u) z( H- D/ q! n
d003.png 9 `0 J9 p) k. E# H7 B
下图是OP的作法:  U& a1 l1 G4 ~) r
d004.png ( M( V* |. X5 L9 n9 C
最后完成椭圆的长短半轴:  e" H( L2 ?1 K1 A2 {( c

) f% z6 t$ E4 \# i4 w8 L d005.png / R+ P1 y: W" X( C$ [# o

( E* ?( d' p2 i1 H. s. u$ l: l8 E  L3 _

评分

参与人数 1三维币 +30 收起 理由
2005llnn + 30 技术分享

查看全部评分

 楼主| 发表于 2015-1-20 00:11:41 | 显示全部楼层 来自: 中国北京
woaishuijia 发表于 2015-1-19 23:10 static/image/common/back.gif
/ O7 m8 J9 j% M- u+ r/ b
谢谢,收藏了。
发表于 2015-1-20 13:46:59 | 显示全部楼层 来自: 中国天津
学习了。     
发表于 2018-3-15 10:26:44 | 显示全部楼层 来自: 中国浙江宁波
woaishuijia 发表于 2015-1-19 19:43( B3 ]+ ~% j: \& k; n* j
再来个LISP

9 T/ m, p. V0 M4 F/ i8 R/ T/ k这是什么?代码?用于CAD?

点评

是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在  详情 回复 发表于 2018-3-15 17:31
发表于 2018-3-15 17:31:39 | 显示全部楼层 来自: 中国北京
小草包 发表于 2018-3-15 10:264 ]  A$ B* T$ P! j6 h8 y
这是什么?代码?用于CAD?
& y7 c" c, S7 p4 V# I- j- }
是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在这个平台上二次开发的绘图软件产品。本帖的二楼、四楼就是针对楼主所提问题,分别用VBA和LISP编写的“已知中心及其上三点作椭圆”命令的程序代码。八楼附件是包含程序的工程文件,在AutoCAD绘图界面的“工具”菜单下使用相应的命令加载工程文件后,就可以像平时使用CAD命令画直线、画圆一样,使用这个自制命令,根据已知中心及其上三点画出椭圆了。
发表于 2018-3-15 20:02:56 | 显示全部楼层 来自: 中国浙江宁波
TOPSOLID 5 g& g  c3 W9 ]" }% N( O9 S: c4 K- K
用中心点加圆上两点即可

点评

做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。  详情 回复 发表于 2018-3-16 05:11
发表于 2018-3-16 05:11:36 | 显示全部楼层 来自: 中国北京
JCKFC1997 发表于 2018-3-15 20:025 ?6 q* k2 |) j4 y
TOPSOLID
. A3 {  v+ G" i3 [2 |用中心点加圆上两点即可
! {3 ?. {2 b2 X: S
做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。
发表于 2018-3-22 17:16:50 | 显示全部楼层 来自: 中国浙江宁波
可以吼出来啊
8 i6 P  {0 u# }2 R$ ]+ W

可以

可以

点评

已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。 下图是根据相同的条件随便画的几个,自己看。  详情 回复 发表于 2018-3-27 00:41
发表于 2018-3-27 00:41:25 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2018-3-27 00:42 编辑 ! `" F4 ?! m9 {
JCKFC1997 发表于 2018-3-22 17:16
9 \: z# R2 G" I6 J可以吼出来啊
/ {( v9 a3 h/ e; `& E8 e3 H( p) k
已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。
" e2 r( v" K5 I2 J; y/ _  u( ]- Y6 j0 W下图是根据相同的条件随便画的几个,自己看。* E! q/ g; Y5 x4 B0 c" j
5 E  @1 K6 R9 r- x" t% T
捕获.PNG
发表于 2018-11-11 09:32:10 | 显示全部楼层 来自: 中国广东佛山
下载个程序用用。
发表于 2018-12-3 09:59:14 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2015-1-19 12:32( u( \1 J: i( Y6 G! b* C5 e5 D
怎么没人回呢?

4 ?5 Y; A. E1 ^+ _请教一下版主,现在CAD编程方面,学习LISP和VBA各有什么优缺点?初学想学习编程,想询问一下版主学习哪个更合适一些?

点评

简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面向对象的编程工具,通过图形界面和代码操纵CAD的内核。它的编程界面很友好,特别是程序中需要使用用户窗口或对  详情 回复 发表于 2018-12-5 23:23
发表于 2018-12-5 23:23:13 | 显示全部楼层 来自: 中国北京
kuangben8 发表于 2018-12-3 09:59
8 W& S+ ^" ~: U3 w' @3 @6 }请教一下版主,现在CAD编程方面,学习LISP和VBA各有什么优缺点?初学想学习编程,想询问一下版主学习哪个 ...

8 O; Z* y6 z& h, N简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面向对象的编程工具,通过图形界面和代码操纵CAD的内核。它的编程界面很友好,特别是程序中需要使用用户窗口或对话框时很方便。但它是使用上一代WINDOWS核心技术(.COM)的,现在微软已经停止了对它的更新。LISP是一种“表语言”,属于比较古老的东西了,流行于当年没有WINDOWS,甚至没有操作系统的年代。只有纯粹的代码,没有图形界面。但它是欧得克公司自己的产权(收购的),相信只要AutoCAD软件还活着,这种语言就死不了。LISP又分为LISP和VLISP,LISP是直接调用CAD前台命令,编程过程和画图过程很相似。VLISP增加了对CAD内核的调用——相当于间接使用VBA,但没有VBA的图形界面。对于能够熟练使用CAD画图,但没有编程基础的童鞋来说,LISP更容易上手,可以先学它。如果需要,以后再学VBA或VLISP(二者是相通的)。

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 感谢您解答了求助的问题。

查看全部评分

发表于 2018-12-8 18:04:39 | 显示全部楼层 来自: 中国
woaishuijia 发表于 2018-12-5 23:23$ m* I5 R: R  }1 ^/ V, `
简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面 ...

% b3 k$ A3 F  {' {. c好的,感谢版主大大。。。我初学了EXCEL的编程,感觉还可以,所以就想结合CAD编程,尝试在借助excel中的数据,自动完成在CAD中的绘图。不知道这个想法是否可以实现?

点评

EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编程简直易如反掌。而且VBA的一大优势就是在支持VBA的软件之间交换数据,所以你说的“借助excel中的数据,自动完  详情 回复 发表于 2018-12-8 20:33
发表于 2018-12-8 20:33:32 | 显示全部楼层 来自: 中国北京
kuangben8 发表于 2018-12-8 18:04+ _1 y, A; v; Y" Z) j( l  t
好的,感谢版主大大。。。我初学了EXCEL的编程,感觉还可以,所以就想结合CAD编程,尝试在借助excel中的 ...
0 Q0 R+ J' e- i. O+ e
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编程简直易如反掌。而且VBA的一大优势就是在支持VBA的软件之间交换数据,所以你说的“借助excel中的数据,自动完成在CAD中的绘图”就是自然而然的事。
发表于 2018-12-8 21:17:27 | 显示全部楼层 来自: 中国
woaishuijia 发表于 2018-12-8 20:33- f+ G" ?7 o$ M
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...

7 X, d& k& z9 K好的,感谢版主大大!给了我很大的信心!
发表于 2019-1-29 12:43:15 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2018-12-8 20:33
) T2 X* G5 k- SEXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...
7 |) o  P: c. n# O) p
老师啊!CAD的VBA没有录制宏功能啊?而且外安装的VBA模块帮助文件全是英文版的!和OFFICE的VBA相比较,麻烦多了!没有录制宏,我该怎么学习CAD的VBA呢?

点评

把邮箱给我  详情 回复 发表于 2019-1-30 22:13
发表于 2019-1-30 22:13:09 | 显示全部楼层 来自: 中国北京
kuangben8 发表于 2019-1-29 12:436 f* G! i2 L% o) b% Y2 ~
老师啊!CAD的VBA没有录制宏功能啊?而且外安装的VBA模块帮助文件全是英文版的!和OFFICE的VBA相比较,麻 ...

( F' @4 e0 Y- O0 }+ x+ k; s把邮箱给我
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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