QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 gongwen0519 于 2015-1-14 00:21 编辑   ?- x/ I6 {. w7 q

- c$ ]* v( S; t6 l7 j) _本题是继这个http://www.3dportal.cn/discuz/fo ... ead&tid=1449246【作出最长值(不限软件)】帖子而来,该帖椭圆中心可知,同时也可以随便得到椭圆上的三点。- {; p% S4 t2 s  v4 ?

3 X1 b& [  v( |1 ~$ ~* y几何作图作出OX、OY的方向与长度即可,ACAD则画出整个椭圆:; m  p# l4 I3 ^) @* t( A2 m9 }1 q
8 a) K% P9 G6 ^7 U" R  k
(这类问题在工程实际中很实用。)
' [* D' |4 ]0 L
% F# Y% e2 N  ~% T# | tuoyuan.png
& \0 o% D- F( x! ^7 o

评分

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

查看全部评分

发表于 2015-1-19 12:32:28 | 显示全部楼层 来自: 中国辽宁抚顺
怎么没人回呢?
  1. Sub C3PE()8 a# D6 r' N2 H8 v3 ^: ^4 Q
  2. Dim P0(2) As Double, P1 As Variant, P2 As Variant, P3 As Variant, P4 As Variant
    ' V8 a. `) J3 M1 m$ N
  3. Dim X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, X3 As Double, Y3 As Double
    8 E3 ?& y% C7 r9 f4 l
  4. Dim A As Double, B As Double, C As Double, F As Double, Ang As Double, R1 As Double, R2 As Double( s! F( _1 O3 T& g
  5. On Error GoTo 10
    ' {5 o, J2 |- a9 |1 a
  6. With ThisDrawing
    - K) Z- x# @7 T% h; n5 h2 T
  7. P1 = .Utility.GetPoint(, "指定中心点")
    2 k3 o4 ~7 J) E' U
  8. P2 = .Utility.GetPoint(, "指定第一点"). }9 e* Q( ?* Z! ~) H% g" Q
  9. P3 = .Utility.GetPoint(, "指定第二点")
    ( h8 ^0 s1 R' B7 ~- q5 U
  10. P4 = .Utility.GetPoint(, "指定第三点")% `& F0 `  T2 o
  11. X1 = P2(0) - P1(0)! J: U8 L4 c0 s9 o3 y& \
  12. Y1 = P2(1) - P1(1)
    ' n6 b& O( R; {9 a/ {( j; k9 S
  13. X2 = P3(0) - P1(0)
    , N, m- G+ \7 P* d2 h  J
  14. Y2 = P3(1) - P1(1)$ L! T/ z$ O% {& m; }2 o4 Q' T
  15. X3 = P4(0) - P1(0)
    - l- }' D% `% H3 W) e" ?/ [" ]) y
  16. Y3 = P4(1) - P1(1)
    ! t& {1 O) i) D0 d
  17. A = (X1 * Y1 - X2 * Y2) * (Y1 ^ 2 - Y3 ^ 2) - (X1 * Y1 - X3 * Y3) * (Y1 ^ 2 - Y2 ^ 2)8 i& m2 ^! a1 M1 z0 }) e  A% z
  18. If A <> 0 Then
    7 D5 ^) C7 ^" P3 b" u' X
  19. B = ((X1 ^ 2 - X2 ^ 2) * (X1 * Y1 - X3 * Y3) - (X1 ^ 2 - X3 ^ 2) * (X1 * Y1 - X2 * Y2)) / A% X5 b8 D! `0 `6 |/ [
  20. C = ((X1 ^ 2 - X3 ^ 2) * (Y1 ^ 2 - Y2 ^ 2) - (X1 ^ 2 - X2 ^ 2) * (Y1 ^ 2 - Y3 ^ 2)) / A8 o- {8 t" Y& r! d$ B  T0 C
  21. F = -X1 ^ 2 - B * Y1 ^ 2 - C * X1 * Y19 G, |: E$ m2 H3 L# M' X2 u1 }) {4 Q
  22. If C = 0 Then
    ! V, O, X  c0 s+ }/ y5 h1 k
  23. If B > 0 And F < 0 Then
    2 a3 \  j( X- d* J. Z
  24. Ang = 0: W+ P+ f0 `6 |9 m
  25. R1 = Sqr(-F)
    # M3 t8 B0 b% @; l( m; x
  26. R2 = Sqr(-F / B)! q* w/ q$ d$ F8 j) }" y
  27. Else4 {+ L8 A( Y: u/ v$ O, F2 x
  28. Exit Sub- r5 T! K9 R5 L+ i) Y  D7 L8 u
  29. End If
    / s5 G& _, a* |% e' P
  30. Else5 D* B' x5 D& e! h. J3 f
  31. If B = 1 Then
    5 t5 r% X8 M6 _+ ^. j1 F
  32. If F < 0 And C > -2 And C < 2 Then. C) @+ \, y, L3 R! k0 m$ \
  33. Ang = .Utility.AngleToReal(45, acDegrees)& m3 F# o" ~3 Z; {: }7 h4 {! O
  34. R1 = Sqr(-2 * F / (2 + C))6 O" K6 H2 b7 {& v
  35. R2 = Sqr(-2 * F / (2 - C))' J; L8 g8 N& c$ c4 J5 i/ t
  36. Else6 Y- N  Q1 p  G2 j
  37. Exit Sub
    ( b, a* @% K* y. g! K
  38. End If
      b- D$ i8 p5 h
  39. Else
    9 j$ ], Z  X; [. i/ N* J; {( t
  40. Ang = Atn(C / (1 - B)) / 2
    : L) C- g6 ~- c8 Y5 s6 n; U
  41. If Ang < 0 Then Ang = Ang + .Utility.AngleToReal(90, acDegrees)
    / X1 X3 L* Q! \. i& h
  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 _
    $ D. v; E, a$ x: j
  43. B < -1 And F > 0 And C > (B + Tan(Ang) ^ 2) / Tan(Ang) And C < -(1 + B * Tan(Ang) ^ 2) / Tan(Ang) Then
    ; m: Y- n/ s  C
  44. R2 = -F * (1 + Tan(Ang) ^ 2)- R' j" `8 ?# L/ I5 X6 y0 a) i! Q
  45. R1 = Sqr(R2 / (1 + B * Tan(Ang) ^ 2 + C * Tan(Ang)))6 F2 p9 N6 c5 K' v
  46. R2 = Sqr(R2 / (B + Tan(Ang) ^ 2 - C * Tan(Ang)))7 D8 S6 `. a2 d0 o
  47. Else# Q) G6 d/ Z7 d( H$ G  y) ?
  48. Exit Sub* g. V: J8 l: q# h$ S) M  n! U
  49. End If
    5 z8 Q. a2 Y% W* B. O+ |' o" L& R& j% H
  50. End If
    ; e# a% Z7 s- s4 N0 n
  51. End If3 j, `4 k0 ^& N( r5 R% t
  52. Else
    ; f( W- T6 o# e* {: p
  53. Exit Sub
      @  G( P1 I' k. i
  54. End If
    # [5 k; U) S2 ]8 Q/ P/ ~
  55. If R2 < R1 Then4 G+ U' D" c) x$ X% h
  56. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang, R1), R2 / R1# N" g0 l; V( d; M
  57. Else/ D& i# B( ^* y+ z( [
  58. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang + .Utility.AngleToReal(90, acDegrees), R2), R1 / R2: p5 N$ B/ \- q9 F/ H
  59. End If# Z/ b( g9 ?3 _4 ^6 b
  60. End With
    9 X# ?% V: V0 E
  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 编辑 1 y9 _2 h6 g6 g
4 _9 J% m  |5 n7 `, k0 C9 K- `
再来个LISP
  1. (defun c:c3pe
    ' A' L- y+ w& `5 K
  2.        (/ old p0 p1 p2 p3 p4 x1 y1 x2 y2 x3 y3 a b c f ang r1 r2)7 J( A6 O+ N) v7 T5 M" V# i: p
  3.   (setvar "CMDECHO" 0)
    " v5 w) c0 u% N- L7 C# ^( v  Z
  4.   (setq p0 (list 0 0 0)4 ~9 p* k0 M5 g# S2 d: k
  5. p1 (getpoint "\n 指定中心点:")+ D" v; F' }  T* K* w
  6. p2 (getpoint "\n 指定第一点:")
    9 E" {/ z' N2 G: |" v
  7. p3 (getpoint "\n 指定第二点:")) `% I; L2 K# {8 I5 `( ~
  8. p4 (getpoint "\n 指定第三点:"); |) H6 q) Z8 X2 k" |# C/ E8 ]
  9. a  (car p1)
    # S* ~/ n9 E1 Y( Y
  10. b  (cadr p1)) v7 E9 H3 F; r  l: c0 b# j# j
  11. x1 (- (car p2) a)! e( `/ ^5 S  \/ d. ]# b
  12. y1 (- (cadr p2) b)( W, Y# V* k2 M' t4 D* G8 K! f- N5 t
  13. x2 (- (car p3) a)# k4 u; w4 k9 v( C
  14. y2 (- (cadr p3) b)
    % F5 V3 ^. s" [( T, G. A
  15. x3 (- (car p4) a)- w( i: H8 o8 b* s3 X+ z$ i( [, Y
  16. y3 (- (cadr p4) b)
    9 P% M! f5 a+ E5 N- U
  17. a  (- (* (- (* x1 y1) (* x2 y2)) (- (* y1 y1) (* y3 y3)))
    & D$ R* [+ u* ?
  18.        (* (- (* x1 y1) (* x3 y3)) (- (* y1 y1) (* y2 y2)))
    & u& ^5 D* F3 o! r, o6 L
  19.     ). Z5 d4 E3 ^6 S; g/ K$ {. Z
  20.   )
    9 D$ v' d0 X, A  {; M4 u# E- D
  21.   (if (/= a 0.0)
    - D) m4 i- |( s* j( o1 y8 @" t
  22.     (progn
    0 h) `6 B  B; w( d% M
  23.       (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- (* x1 y1) (* x3 y3)))
    $ B/ L9 O3 Q+ x1 u2 c) G0 L, @" k1 |" q
  24.       (* (- (* x1 x1) (* x3 x3)) (- (* x1 y1) (* x2 y2)))
    ( H% v( R0 V$ i2 l+ a
  25.    )* _9 J; R+ P* t  b" k
  26.    a, O$ t6 l4 A# w
  27.        ), W' l. P/ H* f# q; B: ^! m5 u  @
  28.      c (/ (- (* (- (* x1 x1) (* x3 x3)) (- (* y1 y1) (* y2 y2)))9 `7 q- F6 c8 H5 d
  29.       (* (- (* x1 x1) (* x2 x2)) (- (* y1 y1) (* y3 y3)))5 S, |, |/ W& x: P( l
  30.    )  H. x. b% z( R
  31.    a
    : l( X  _% o. a. ~9 w! e; o
  32.        )% q/ c, @" r$ o" Z
  33.      f (- 0 (* x1 x1) (* b y1 y1) (* c x1 y1))% S  Y9 [7 i! P
  34.       )( S: _4 q/ l: j/ P+ T. v; [
  35.       (if (zerop c)
    + `  V" E( @  C/ v0 F) `" c* m
  36. (if (and (> b 0.0) (< f 0.0))/ q& N6 n1 \$ q$ `# J* [9 O4 c
  37.    (setq ang 0.0$ o) {) k; D5 i/ w) ?
  38.   r1  (sqrt (- 0 f))9 F/ A9 h  [+ o: D& k" N
  39.   r2  (sqrt (- 0 (/ f b)))
    ' R  I# {( Y/ M  L+ b3 `1 T
  40.    )! ?. o* C% B$ a7 O6 A$ C: V
  41. )- ?1 h- M- Y* h: T
  42. (progn5 m) R* T/ c! A2 v7 F
  43.    (if (= b 1.0)
    9 Y4 r- T* n0 v; F' V# H( m
  44.      (if (and (< f 0.0) (> c -2.0) (< c 2.0))% }, U' M' P  m/ H7 T# K) Q
  45.        (setq ang (/ pi 4)
    + d; [) h$ k  y6 E; D
  46.       r1 (sqrt (* -2 (/ f (+ 2 c))))9 Y6 s! ?$ A- j5 [$ K
  47.       r2 (sqrt (* -2 (/ f (- 2 c))))  j9 `; ]+ C& i/ k
  48.        )
    2 O' D+ S/ s/ X, O
  49.      )3 |3 X/ E  p+ p* B# |
  50.      (progn! r! n! G: I. v8 x, ^, O( M
  51.        (setq ang (/ (atan (/ c (- 1 b))); l4 |/ G  L0 {/ E" h, U
  52.       2( M. R+ |0 ?8 K2 X2 y+ {4 H' s
  53.    )7 s& S2 j" g2 p* @+ ]" `8 l
  54.        )
    " A6 u% v/ G4 e
  55.        (if (< ang 0.0)
    7 k- m+ E* p- ^
  56.   (setq ang (+ ang (/ pi 2)))# J7 u( l% Y" C: \. x
  57.        )2 m0 K6 r, t& @" K
  58.        (setq a (/ (sin ang) (cos ang)))
    + V3 [, C$ O$ m# S, W" ^7 z  v
  59.        (if (or (and (> b -1.0)
    2 y* O+ }/ w2 l' z( ^
  60.       (< f 0.0)
    3 }4 E7 o/ w. I: F  J4 _- N( B2 B/ Q, P
  61.       (> c (/ (- -1.0 (* b (* a a))) a))1 v# _+ v1 ]1 b5 W
  62.       (< c (/ (+ b (* a a)) a))
    , _. J9 E1 s; b& A$ T
  63.         )0 Z; M+ P$ e" E: c' z+ U$ @
  64.         (and (< b -1.0)
    2 B( w2 `5 S4 S- Q! W3 F1 i
  65.       (> f 0.0)
    ) n, K  G) Q" I" c6 k9 {
  66.       (> c (/ (+ b (* a a)) a))0 v; M0 P9 [  S  y" ?
  67.       (< c (/ (- -1.0 (* b (* a a))) a))
      a1 N5 |. U9 I  W
  68.         )
    ; F, H% y8 Y' b; b
  69.     )
    7 z5 |/ {3 V, R
  70.   (setq r2 (* -1 f (1+ (* a a)))2 p0 O8 w. u) _2 B! Q- x
  71.         r1 (sqrt (/ r2 (+ 1 (* b a a) (* c a))))9 e9 B7 M6 n% ?0 s% X/ \: _3 U4 l" u
  72.         r2 (sqrt (/ r2 (- (+ b (* a a)) (* c a))))
    2 K3 Q# U# p. i: I) ]
  73.   )9 R" V' c" G! ]/ Z
  74.        )
    ( A( [- Y8 H' H3 l" Q7 d
  75.      )
    8 z5 D/ y' v( d4 }" M, S, a
  76.    )
    : F% M6 k' `& g0 L! r7 d5 d- ^: s$ b
  77. )( c- l1 y" P  U" d- {
  78.       )5 P, Y. k3 v, p6 b
  79.     )
    0 N8 H  ?8 U# x" u+ o
  80.   )
    8 n: G7 N- `# P, s/ k! k) B# B
  81.   (if r1$ p' j. m. Z( y) s1 [" `/ M
  82.     (progn! k& J5 l* U( e; g
  83.       (setq old (getvar "OSMODE"))
    ' @  ^+ ~" L; m9 h) @
  84.       (setvar "OSMODE" 0)$ L3 O/ r- o3 @( w% a* N
  85.       (command "ellipse"( N, j. \' |. R; v8 [/ s
  86.         "c"
    ' Q. b" z" D" e
  87.         p1
    4 l1 ]- w" L: w! X& I
  88.         (polar p1 ang r1)
    4 K* s7 |2 k- S, \4 G
  89.         r2" t6 G) \9 I8 U
  90.       )$ T+ `1 N, y0 z2 i1 ?
  91.       (setvar "OSMODE" old)1 [7 z4 y6 X6 o
  92.     ), G$ \6 r# e$ f$ L2 m
  93.   )% h% I, ^. U7 g: c% J  g
  94.   (princ)5 v( P" {) m+ @7 G8 R9 K6 Z/ i
  95. )
复制代码

评分

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

查看全部评分

 楼主| 发表于 2015-1-19 20:34:06 | 显示全部楼层 来自: 中国北京
tangcarlos3d 发表于 2015-1-19 14:23 static/image/common/back.gif$ y1 a. x1 |1 I* J2 Q
已知椭圆的中心点,将3点代入椭圆的一般方程,用解析几何的方法计算即可。

) N- d4 ~3 f+ G3 |可以不解方程,有纯几何方法解的(指能作出椭圆的长短轴的方向与长度)。
 楼主| 发表于 2015-1-19 20:45:01 | 显示全部楼层 来自: 中国北京
本帖最后由 gongwen0519 于 2015-1-19 20:55 编辑
; P* J: x/ }# z- r, D  }
woaishuijia 发表于 2015-1-19 19:43 static/image/common/back.gif9 u% w2 r# M" j! D: X% D% F" h
再来个LISP
3 X* E% k$ Q! P# A0 Q4 s7 }' h; n

5 m0 J/ H, n3 F& _3 Bwoaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码,手工复制或清理太费时间),谢谢。。9 ]/ @0 n9 H6 ^
# w/ ?  _3 f' ?( O" l
看来大家和曾经的楼主一样,看到圆锥二次曲线就生威蹙眉。
" d% ^4 c3 Y3 z& T
& ~; d. a( P+ {3 Z+ S9 E. A如果用尺寸约束与驱动,把椭圆约束到这些参数上也是可以的呀。
+ L, D  v$ V8 C% x+ ~* p; t/ B* s! Q& n! Q* [9 t1 `  t2 S: C
谢谢woaishuijia版主的VBA与lsp,今后工作中我就用您的程序了。
% C1 b0 Q% U5 ^$ K$ ]3 t
- q! ^1 Z/ n( `; _+ ]5 @/ R为增加活跃一下的气氛,我还是稍后整理公布一下过程不是“很”复杂的几何作法吧。
发表于 2015-1-19 22:02:32 | 显示全部楼层 来自: 中国辽宁大连
能给出长轴和短轴的公式吗?和水平角度的计算
发表于 2015-1-19 23:10:51 | 显示全部楼层 来自: 中国辽宁营口
本帖最后由 woaishuijia 于 2015-1-19 23:25 编辑 + J2 I" V: Q0 X9 O' p  `
gongwen0519 发表于 2015-1-19 20:45 http://www.3dportal.cn/discuz/static/image/common/back.gif& e/ R! K- ]# N$ z2 l
woaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码, ...
% ]( J" D9 y& K
- Z: O. l; @7 h+ ]
C3PE.rar (4.96 KB, 下载次数: 25)
 楼主| 发表于 2015-1-20 00:04:33 | 显示全部楼层 来自: 中国北京
lisc2000 发表于 2015-1-19 22:02 static/image/common/back.gif
  ^7 y, ^, f# w5 k能给出长轴和短轴的公式吗?和水平角度的计算

4 A2 x7 c/ v% M4 r8 V! v已经整理好一种几何解法:
& ]# m0 i1 V( }$ |, @& U7 L5 P) I8 Y4 l* w; F3 }
前面的说明:0 {4 y( O' D7 M+ e' U3 l

; y, |* ]- N6 h1 Y5 r* N d001.png $ c. B" s. B8 y

  |3 k, M* S/ \  K# z0 X作图过程:7 q+ m6 ]) I5 V- A. y, k; {

3 S; R* i2 l7 n" y  b: V d002.png
+ L2 `8 d' P' T6 V' n
+ d1 c* Y0 G( m3 ^+ a6 M d003.png
% P& c7 f+ I5 Q. B5 z% E' s- t下图是OP的作法:
5 A% |+ W5 M7 n' B d004.png 6 T1 [' M  l+ n
最后完成椭圆的长短半轴:8 f! V) q" ^; F( O! ?+ ?
, e3 ^: f# v! H( P* u
d005.png
5 u2 g, `1 H* j! r9 U2 R3 u/ q* S. w, U2 a6 p8 ^, E
0 g! M% S7 \' I+ O- _6 b

评分

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

查看全部评分

 楼主| 发表于 2015-1-20 00:11:41 | 显示全部楼层 来自: 中国北京
woaishuijia 发表于 2015-1-19 23:10 static/image/common/back.gif
( _6 M. _4 T3 v; D9 m' s' ^
谢谢,收藏了。
发表于 2015-1-20 13:46:59 | 显示全部楼层 来自: 中国天津
学习了。     
发表于 2018-3-15 10:26:44 | 显示全部楼层 来自: 中国浙江宁波
woaishuijia 发表于 2015-1-19 19:437 P" r  x9 `$ b4 Q9 ]2 }1 J/ x% {
再来个LISP
' f7 X2 d  N% H/ P1 D' `+ O
这是什么?代码?用于CAD?
发表于 2018-3-15 17:31:39 | 显示全部楼层 来自: 中国北京
小草包 发表于 2018-3-15 10:26
: J, I) v6 R! k, q这是什么?代码?用于CAD?

8 G# {2 X4 W; r$ @是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在这个平台上二次开发的绘图软件产品。本帖的二楼、四楼就是针对楼主所提问题,分别用VBA和LISP编写的“已知中心及其上三点作椭圆”命令的程序代码。八楼附件是包含程序的工程文件,在AutoCAD绘图界面的“工具”菜单下使用相应的命令加载工程文件后,就可以像平时使用CAD命令画直线、画圆一样,使用这个自制命令,根据已知中心及其上三点画出椭圆了。
发表于 2018-3-15 20:02:56 | 显示全部楼层 来自: 中国浙江宁波
TOPSOLID ! C0 Z5 w: Y" g
用中心点加圆上两点即可
发表于 2018-3-16 05:11:36 | 显示全部楼层 来自: 中国北京
JCKFC1997 发表于 2018-3-15 20:020 M; P" f$ m! s; Q: |! B) ^9 j6 S; O
TOPSOLID
1 r. w5 E7 l; _: l& x用中心点加圆上两点即可
: X* G* x5 v/ }& R  O
做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。
发表于 2018-3-22 17:16:50 | 显示全部楼层 来自: 中国浙江宁波
可以吼出来啊
% x: k7 o4 ^! I7 ^8 O

可以

可以
发表于 2018-3-27 00:41:25 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2018-3-27 00:42 编辑
" Z+ q5 ?6 n4 G' }; j! B# B
JCKFC1997 发表于 2018-3-22 17:16
* X  V1 f( }8 K- V7 ]- M可以吼出来啊
' V- G. N- m1 K. `
已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。3 r! d9 G. T! ^
下图是根据相同的条件随便画的几个,自己看。
4 G' K, G2 `3 t. q) J; Y
: F$ A0 n8 a: Y9 G& ^
捕获.PNG
发表于 2018-11-11 09:32:10 | 显示全部楼层 来自: 中国广东佛山
下载个程序用用。
发表于 2018-12-3 09:59:14 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2015-1-19 12:32; H; o; m5 f; P# w
怎么没人回呢?

) J$ l+ ]& W7 t% ?请教一下版主,现在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
$ O+ y8 i$ U- }3 {  Q. i9 j请教一下版主,现在CAD编程方面,学习LISP和VBA各有什么优缺点?初学想学习编程,想询问一下版主学习哪个 ...

# X2 M& ^" J1 S$ w& }简单说,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
. X3 W$ x8 T) c$ @! X! j简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面 ...
, [. a  E: C6 [
好的,感谢版主大大。。。我初学了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! F! b6 s8 E* B5 w0 I$ x
好的,感谢版主大大。。。我初学了EXCEL的编程,感觉还可以,所以就想结合CAD编程,尝试在借助excel中的 ...
  {1 T5 Y& h# r. o
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编程简直易如反掌。而且VBA的一大优势就是在支持VBA的软件之间交换数据,所以你说的“借助excel中的数据,自动完成在CAD中的绘图”就是自然而然的事。
发表于 2018-12-8 21:17:27 | 显示全部楼层 来自: 中国
woaishuijia 发表于 2018-12-8 20:33
* ?$ d1 b4 G, i' MEXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...

3 L& n( C9 [! L$ ~好的,感谢版主大大!给了我很大的信心!
发表于 2019-1-29 12:43:15 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2018-12-8 20:33% g, P' i) b5 g
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...

2 s8 \/ p0 ]  \7 s老师啊!CAD的VBA没有录制宏功能啊?而且外安装的VBA模块帮助文件全是英文版的!和OFFICE的VBA相比较,麻烦多了!没有录制宏,我该怎么学习CAD的VBA呢?

点评

把邮箱给我  详情 回复 发表于 2019-1-30 22:13
发表于 2019-1-30 22:13:09 | 显示全部楼层 来自: 中国北京
kuangben8 发表于 2019-1-29 12:43
- `, ^! O1 Y+ ]" B* C) W老师啊!CAD的VBA没有录制宏功能啊?而且外安装的VBA模块帮助文件全是英文版的!和OFFICE的VBA相比较,麻 ...
; T) r/ c% ~' ^' }/ L
把邮箱给我
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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