QQ登录

只需一步,快速开始

扫一扫,访问微社区

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

展开

通知     

系统
[系统通知] 免费下载中望3D
2018-11-07
系统
2018-11-07
查看: 2265|回复: 22
收起左侧

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

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

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

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

x
本帖最后由 gongwen0519 于 2015-1-14 00:21 编辑 0 o! x& _- e3 g# L4 G$ `5 C& k
9 _8 Z( _& {  m& M$ G6 Q; k; s8 }
本题是继这个http://www.3dportal.cn/discuz/fo ... ead&tid=1449246【作出最长值(不限软件)】帖子而来,该帖椭圆中心可知,同时也可以随便得到椭圆上的三点。
! P! y: ?3 j* k4 U4 y* p$ U# y6 T# `9 K( C
几何作图作出OX、OY的方向与长度即可,ACAD则画出整个椭圆:
5 s# |& ~. K0 p6 P" m. T  y; ]4 d+ U4 \
(这类问题在工程实际中很实用。)* a  W) W, @8 |
$ V+ y6 r4 t* n$ B% H  l$ Z1 o3 n9 y
tuoyuan.png % d! n5 L) t' @! C! [, Q

评分

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

查看全部评分

此贴共有 48 人浏览过
回复过本主题
的还回复过:
发表于 2015-1-19 12:32:28 | 显示全部楼层
怎么没人回呢?
  1. Sub C3PE()7 s+ l- i$ y- Q, |; N  z
  2. Dim P0(2) As Double, P1 As Variant, P2 As Variant, P3 As Variant, P4 As Variant( e8 Y4 j+ S+ Q4 B. D# ?
  3. Dim X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, X3 As Double, Y3 As Double
    ( C" k8 N3 I/ {3 }
  4. Dim A As Double, B As Double, C As Double, F As Double, Ang As Double, R1 As Double, R2 As Double
      {8 A# C9 j3 v$ T+ s8 b
  5. On Error GoTo 10  R# k! K! a, x$ |0 y5 [5 B2 u
  6. With ThisDrawing  A# w# |. u$ q: v9 c2 N" i
  7. P1 = .Utility.GetPoint(, "指定中心点"), h% M7 S7 N6 W) U
  8. P2 = .Utility.GetPoint(, "指定第一点"). V2 l/ Z1 p# t, i
  9. P3 = .Utility.GetPoint(, "指定第二点"): ^0 J/ x. y  @" H: r
  10. P4 = .Utility.GetPoint(, "指定第三点")
    . I9 ^( A% Y7 U5 C- q+ w
  11. X1 = P2(0) - P1(0)
    5 X: f- [7 u* i5 V$ R* N2 x! x" G% E& Y
  12. Y1 = P2(1) - P1(1)4 D8 ~  z% P( ~- v: m
  13. X2 = P3(0) - P1(0)
    ' Z% @- y% A5 u2 Y
  14. Y2 = P3(1) - P1(1)
    1 b4 z+ G3 Y4 v, A9 _$ d3 j
  15. X3 = P4(0) - P1(0)
    8 p  S2 f1 B7 N( a
  16. Y3 = P4(1) - P1(1); Z9 {4 z$ O# B" K3 Y2 m
  17. A = (X1 * Y1 - X2 * Y2) * (Y1 ^ 2 - Y3 ^ 2) - (X1 * Y1 - X3 * Y3) * (Y1 ^ 2 - Y2 ^ 2)
    2 K% x" g6 u) X! e: w0 x; _) y
  18. If A <> 0 Then6 Q( q* `3 W" t) E3 R  Q' q4 x* r% m
  19. B = ((X1 ^ 2 - X2 ^ 2) * (X1 * Y1 - X3 * Y3) - (X1 ^ 2 - X3 ^ 2) * (X1 * Y1 - X2 * Y2)) / A
    3 }- Z1 ^  ]; i- z; y/ O  x$ v( ^
  20. C = ((X1 ^ 2 - X3 ^ 2) * (Y1 ^ 2 - Y2 ^ 2) - (X1 ^ 2 - X2 ^ 2) * (Y1 ^ 2 - Y3 ^ 2)) / A& ^6 F9 r% i% G8 s6 l
  21. F = -X1 ^ 2 - B * Y1 ^ 2 - C * X1 * Y1" e8 Z/ C# a- W( C: r) R5 X
  22. If C = 0 Then/ |" V, v( j8 X+ U
  23. If B > 0 And F < 0 Then
    # C# t! c' i0 X
  24. Ang = 0
    2 {- i7 H; G' u! z8 E) f! p
  25. R1 = Sqr(-F)
    - p7 O/ S; _$ m, ]
  26. R2 = Sqr(-F / B)7 @8 y" G' w  r2 |4 V
  27. Else' T# S. E, Y& Z# v( F7 i- D
  28. Exit Sub
    ' v% ~  |0 U: ?1 o, x5 t
  29. End If' @0 H6 z' p- u0 l7 b' d0 B: ?0 p# O
  30. Else
    ; K/ X$ {/ {: ]& X3 S
  31. If B = 1 Then
    8 x  v$ S4 a- Z2 W
  32. If F < 0 And C > -2 And C < 2 Then
    . }5 a% m% i6 o/ |
  33. Ang = .Utility.AngleToReal(45, acDegrees)
    , x. n" j. s& u% o
  34. R1 = Sqr(-2 * F / (2 + C))( h' W& U# \- T! r# \4 a9 `
  35. R2 = Sqr(-2 * F / (2 - C))8 q0 }7 E9 \; A) x
  36. Else% t" J2 \. e4 B( B
  37. Exit Sub
      l  ?8 D( s; @( ^
  38. End If* m" ^3 j0 W1 X9 U# m
  39. Else
    ' g% c8 X6 h2 r' X4 f8 m. j
  40. Ang = Atn(C / (1 - B)) / 2
    % k" H: @- G1 n' _  Y
  41. If Ang < 0 Then Ang = Ang + .Utility.AngleToReal(90, acDegrees)% {3 S5 G$ M) l$ G
  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# P: {3 `- q' k3 {
  43. B < -1 And F > 0 And C > (B + Tan(Ang) ^ 2) / Tan(Ang) And C < -(1 + B * Tan(Ang) ^ 2) / Tan(Ang) Then5 S* I( O2 @5 E' X3 {, w
  44. R2 = -F * (1 + Tan(Ang) ^ 2)' B  @( X9 Y1 O  F/ C
  45. R1 = Sqr(R2 / (1 + B * Tan(Ang) ^ 2 + C * Tan(Ang)))* `9 }- x' P/ M7 T7 f
  46. R2 = Sqr(R2 / (B + Tan(Ang) ^ 2 - C * Tan(Ang)))
    3 Y; R; Y8 T1 l! }! Q: X/ r" H
  47. Else% s3 \8 P. q" _( e5 V- i" d# o
  48. Exit Sub* F$ h# }/ v5 `9 a3 `
  49. End If9 Q# f) S& O+ X8 X, B7 v& J
  50. End If! Z6 {! P% w' X1 W
  51. End If
    + D& U5 S  U2 ]
  52. Else
    ! f: Y# w# |) R+ F
  53. Exit Sub3 E* I4 n0 P0 p
  54. End If
    ; ]0 k1 f/ q3 q' ?
  55. If R2 < R1 Then' I2 {- x+ Q# N7 i4 j. t8 q
  56. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang, R1), R2 / R1  c0 r  p  ]$ [3 z
  57. Else
    $ _1 F* n5 h( F* Z6 D$ N( Y
  58. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang + .Utility.AngleToReal(90, acDegrees), R2), R1 / R22 l0 a' I9 n* T: z! }8 i2 _& P
  59. End If
    1 a( B3 l9 p! O6 N5 K
  60. End With9 }4 I7 k; e% Q8 k  e2 @" k2 M8 T, c
  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 编辑
  a8 c% I* n& p( K( v8 g1 ]6 y+ b# l# }. Q
再来个LISP
  1. (defun c:c3pe2 r. L, Y( ]( h" {8 u+ Y* P
  2.        (/ old p0 p1 p2 p3 p4 x1 y1 x2 y2 x3 y3 a b c f ang r1 r2)) C) b$ Q: T1 r/ ^
  3.   (setvar "CMDECHO" 0)
      v' U! ]: G- B" R
  4.   (setq p0 (list 0 0 0)
    " [: W- L/ Q( B+ s
  5. p1 (getpoint "\n 指定中心点:")
    / c0 e* @! U3 R! D7 N4 J  ]
  6. p2 (getpoint "\n 指定第一点:")/ Q: Y0 o# D, A& S
  7. p3 (getpoint "\n 指定第二点:")
    , v( ]* F1 }4 G& ~; r& a) i1 q
  8. p4 (getpoint "\n 指定第三点:"); \( r  K, ]" |6 S6 T
  9. a  (car p1)
    - Z8 V4 o3 w" q1 @- `6 \0 ^: e
  10. b  (cadr p1)7 B) p# r) k7 Y) T# r
  11. x1 (- (car p2) a)
    : I2 e7 B" d5 ^# O* v' g
  12. y1 (- (cadr p2) b)
    7 Y( e  Y2 X* J9 d0 B1 {2 _
  13. x2 (- (car p3) a)
    4 s; E0 C2 A0 a+ n0 F+ l
  14. y2 (- (cadr p3) b)
    0 y; s: ?6 j* J2 q" g; D
  15. x3 (- (car p4) a)
    , Q$ ?1 v! u  t9 A
  16. y3 (- (cadr p4) b)
    4 {. J7 e& B& k9 b
  17. a  (- (* (- (* x1 y1) (* x2 y2)) (- (* y1 y1) (* y3 y3)))
    ! D) ?' W7 e! j" _
  18.        (* (- (* x1 y1) (* x3 y3)) (- (* y1 y1) (* y2 y2)))
    , Y  {: c; z' z" g6 N; q
  19.     )
    ! [/ v% H) x' e: X3 @8 m) ]2 @% n
  20.   )+ u+ l- k! F. {! P1 j
  21.   (if (/= a 0.0)
    - \4 ]6 D( |, A9 x: B* c
  22.     (progn
    ( N- @/ G* P- ^  s! i
  23.       (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- (* x1 y1) (* x3 y3)))
    + Z6 ]& x& x# T- o* {' E( P
  24.       (* (- (* x1 x1) (* x3 x3)) (- (* x1 y1) (* x2 y2)))
    1 `* H8 a/ J. E
  25.    )
    ' W( K+ D& K" Y' h
  26.    a
    : |4 Y" _4 h- ]
  27.        )$ o6 s6 ~9 p; j- z* I; h
  28.      c (/ (- (* (- (* x1 x1) (* x3 x3)) (- (* y1 y1) (* y2 y2)))& q0 ~9 ~% H3 C3 W( E4 I
  29.       (* (- (* x1 x1) (* x2 x2)) (- (* y1 y1) (* y3 y3)))$ |: a, c+ P- `% E8 X
  30.    )
    $ q. f$ |4 S, N3 q/ {) j) k
  31.    a
    8 S. n/ M: P5 |5 i  q! L
  32.        )
    ! X2 J  E( b4 ^( Q* W. j
  33.      f (- 0 (* x1 x1) (* b y1 y1) (* c x1 y1))
    9 V3 x/ Y) P2 n
  34.       )
    ) {9 X' C! h$ b1 m# R
  35.       (if (zerop c)& [3 N2 S8 A% {# U7 i+ }# _
  36. (if (and (> b 0.0) (< f 0.0))
    : b* ]$ q! f6 K; @% u4 N* H1 r
  37.    (setq ang 0.0
    5 @4 {. C1 B- z6 p, L4 b
  38.   r1  (sqrt (- 0 f))- f2 }" `- a! h* m- f
  39.   r2  (sqrt (- 0 (/ f b)))
    7 k4 ?- I$ [& ]- U7 `
  40.    )( A6 v0 K, m8 k; `( g
  41. )5 [' a1 N; x# p+ f3 ]7 c+ L
  42. (progn* A1 B( O8 X5 i+ P0 k* R9 Y" s
  43.    (if (= b 1.0)
    ( U3 g: U( k3 G8 G, m5 c
  44.      (if (and (< f 0.0) (> c -2.0) (< c 2.0))
    9 r* O3 c* \8 D3 ~' `5 J
  45.        (setq ang (/ pi 4)
    5 _" m# z6 v3 [4 g1 r5 {$ F9 {' C
  46.       r1 (sqrt (* -2 (/ f (+ 2 c))))1 ?) _% ~' T) i- l' k6 [
  47.       r2 (sqrt (* -2 (/ f (- 2 c))))/ `) o" a/ a4 v( Q, R8 m" w
  48.        )' Z0 n2 Z  V( Y/ ^& \5 t- D7 G7 D
  49.      )2 ^: y0 R  x% s7 y+ i& Z  p( `
  50.      (progn
    4 ~3 P, p/ ^: O  c% s( d
  51.        (setq ang (/ (atan (/ c (- 1 b)))
    7 m+ B' Y0 E! d% q; H
  52.       2# D! L3 I: X" U# M$ d, }
  53.    )
    3 `/ x, e( O4 }7 |" J. [3 @4 l8 `
  54.        )
    - t4 Z1 r3 l+ ]& m4 |$ }
  55.        (if (< ang 0.0)8 c* j6 e$ K. d/ s
  56.   (setq ang (+ ang (/ pi 2)))5 z+ _2 b3 y, R0 X: {
  57.        )
    - L+ C1 C0 I8 R  K7 R
  58.        (setq a (/ (sin ang) (cos ang)))
    $ c6 W8 h$ u! l  ^( m" ]) b+ m; b
  59.        (if (or (and (> b -1.0)* S6 X: t- v+ Z0 {/ O& M
  60.       (< f 0.0)+ Y- Y, _! Z. y8 w7 x* n
  61.       (> c (/ (- -1.0 (* b (* a a))) a))6 J% A3 F( r) T  n; m- i+ @
  62.       (< c (/ (+ b (* a a)) a))
    1 l' a# E3 b8 Q4 d, u3 Z: ]
  63.         )
    - C) T7 L! v- _7 d9 x2 M+ |
  64.         (and (< b -1.0), O6 ~7 K0 H2 f5 R3 Z
  65.       (> f 0.0)6 r- H5 a4 y2 d8 u( H6 F% ]
  66.       (> c (/ (+ b (* a a)) a)). J+ ^) }4 P( o; ]# \) d
  67.       (< c (/ (- -1.0 (* b (* a a))) a))8 z3 l% g0 V3 g  b" a
  68.         )
    2 U7 r( N" g& \# w9 t
  69.     )
    + K% K& O& E* _/ R
  70.   (setq r2 (* -1 f (1+ (* a a)))) t' |) k0 T* T( d8 o8 A: J  I
  71.         r1 (sqrt (/ r2 (+ 1 (* b a a) (* c a))))
    / B6 r9 W/ ^! t- }
  72.         r2 (sqrt (/ r2 (- (+ b (* a a)) (* c a))))
    : O, R* B# L- _3 L' b- e
  73.   )
    0 x. Q2 T* H# o- O" j0 w) N8 P
  74.        ); h4 T, ^' i2 p: Y1 ~0 f
  75.      )+ G0 s0 O+ X7 R# P+ i- r# Z
  76.    )
    * C2 u; ]9 K; J2 t+ K
  77. )
    % m2 Q: M# }: V8 K- D4 N% W. j
  78.       )" X4 L/ Z( p* ~. w! ]; f9 e
  79.     )
    % [. w* C1 Y$ T6 g, d
  80.   )& |$ k5 s2 [. j" V
  81.   (if r1
    9 w: {4 l  R, S9 ~1 Y, ^
  82.     (progn; W( U+ W7 \( f4 }0 N+ e0 ^
  83.       (setq old (getvar "OSMODE"))# c5 s( ~1 V1 F  @
  84.       (setvar "OSMODE" 0)
    " R7 j& H2 m% S0 r8 {
  85.       (command "ellipse"* w; A6 J' j! n4 o) S7 _
  86.         "c"6 x( x- c3 i& o5 t( ~2 y  n  y
  87.         p16 J# U3 r$ e0 ~# S- c) \( y, B
  88.         (polar p1 ang r1)
    3 Z6 ]( k: `5 N4 d
  89.         r2
    * W) E( u* T4 `' M
  90.       ): x: R; N; ?' m4 w& }3 U
  91.       (setvar "OSMODE" old)
    , B% U. r7 h$ n8 I; e+ b4 ?
  92.     )- g! o3 K4 f1 _8 a+ R7 p* S6 O
  93.   )
    % S! T* d: p4 W
  94.   (princ)! ^2 `) z1 T, W1 R1 S. e
  95. )
复制代码

点评

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

评分

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

查看全部评分

 楼主| 发表于 2015-1-19 20:34:06 | 显示全部楼层

5 U0 U8 q& ^4 F5 D可以不解方程,有纯几何方法解的(指能作出椭圆的长短轴的方向与长度)。
 楼主| 发表于 2015-1-19 20:45:01 | 显示全部楼层
本帖最后由 gongwen0519 于 2015-1-19 20:55 编辑 * j6 h2 u9 }8 W$ r. Q/ X
+ o' \* r9 J+ ]% h/ k7 `& e

7 G, A3 L' R& l, rwoaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码,手工复制或清理太费时间),谢谢。。
4 e6 O) q8 n( @, o' ]+ c7 f$ m2 n& [* o8 ]( C' n
看来大家和曾经的楼主一样,看到圆锥二次曲线就生威蹙眉。1 q- _. h" F8 E0 n- U
" H  [+ K1 w3 [: t4 Q7 R+ g: _
如果用尺寸约束与驱动,把椭圆约束到这些参数上也是可以的呀。
0 I5 v, [% p6 M. |& u- n# e+ _- e
3 r, W8 \3 i  v) g6 C  L3 Q谢谢woaishuijia版主的VBA与lsp,今后工作中我就用您的程序了。
* S& Q3 C2 S9 f* x6 |2 X# F" U* o; ?/ {. e  O
为增加活跃一下的气氛,我还是稍后整理公布一下过程不是“很”复杂的几何作法吧。
发表于 2015-1-19 22:02:32 | 显示全部楼层
能给出长轴和短轴的公式吗?和水平角度的计算
发表于 2015-1-19 23:10:51 | 显示全部楼层
本帖最后由 woaishuijia 于 2015-1-19 23:25 编辑
3 S# ?; ?& c# D: b) e5 a) l" L
gongwen0519 发表于 2015-1-19 20:45
6 T% k3 K3 {7 Xwoaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码, ...

8 u" ~6 X. E& u$ F5 e/ v* S& L1 v/ J5 l
C3PE.rar (4.96 KB, 下载次数: 16)
 楼主| 发表于 2015-1-20 00:04:33 | 显示全部楼层
lisc2000 发表于 2015-1-19 22:02
4 {% _. l# T8 }5 O# ~8 R- e能给出长轴和短轴的公式吗?和水平角度的计算
3 w3 V- A% y$ W0 W' u2 ?8 F: n% k; {  X
已经整理好一种几何解法:
7 E- _4 c  f% [# a. ^- p1 m; m2 z; B' K% }( L
前面的说明:
$ n; j2 N* w& W8 A9 f: y; q9 t2 s5 S/ H$ M
d001.png ! Z5 {( I6 G: ^0 m# ?2 T
- R  S1 I( f& r, v
作图过程:2 I1 A( X$ u$ N
2 S7 E( z* K4 T% p: V/ E
d002.png
2 n) |/ N8 t( d9 A- Y4 c9 c7 h' u& J- X6 I; ]: Y' N2 z& f/ I% X% i% L
d003.png & C; g, m, C! R+ x: M; p
下图是OP的作法:
2 O2 B1 J' M$ C5 z0 S d004.png
& D) ^1 `7 `% l7 u6 x$ Q$ l/ w$ a4 d7 B最后完成椭圆的长短半轴:
# r, j! w# p8 S3 }5 |* [$ z
, g+ F- M" F( R d005.png
2 i. ?- o3 u3 g4 l
( Q0 s8 {: H1 B8 P0 j2 n
# n* e3 \- l$ [1 t4 x

评分

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

查看全部评分

 楼主| 发表于 2015-1-20 00:11:41 | 显示全部楼层
( U/ ]. z  ^# M" r- O; u
谢谢,收藏了。
发表于 2015-1-20 13:46:59 | 显示全部楼层
学习了。     
发表于 2018-3-15 10:26:44 | 显示全部楼层
woaishuijia 发表于 2015-1-19 19:43
/ U. ]0 O5 I/ M1 x. m& ?再来个LISP
! U" ^$ p3 J/ G1 Q' {: P
这是什么?代码?用于CAD?

点评

是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在  详情 回复 发表于 2018-3-15 17:31
发表于 2018-3-15 17:31:39 | 显示全部楼层
小草包 发表于 2018-3-15 10:26
& D7 w2 h1 `1 k这是什么?代码?用于CAD?

0 [8 H+ T  @2 G. i$ I是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在这个平台上二次开发的绘图软件产品。本帖的二楼、四楼就是针对楼主所提问题,分别用VBA和LISP编写的“已知中心及其上三点作椭圆”命令的程序代码。八楼附件是包含程序的工程文件,在AutoCAD绘图界面的“工具”菜单下使用相应的命令加载工程文件后,就可以像平时使用CAD命令画直线、画圆一样,使用这个自制命令,根据已知中心及其上三点画出椭圆了。
发表于 2018-3-15 20:02:56 | 显示全部楼层
TOPSOLID
* b0 q9 P: V% |) Y4 r( y用中心点加圆上两点即可

点评

做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。  详情 回复 发表于 2018-3-16 05:11
发表于 2018-3-16 05:11:36 | 显示全部楼层
JCKFC1997 发表于 2018-3-15 20:02
1 ^. w; y8 @0 ?- l6 A4 k3 c' [' STOPSOLID
( H: w, L, A) G2 G" g# E; z1 M用中心点加圆上两点即可
: [3 S6 k! y$ j7 ?! p# h
做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。
发表于 2018-3-22 17:16:50 | 显示全部楼层
可以吼出来啊
% z) K" G% n! E! y% {

可以

可以

点评

已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。 下图是根据相同的条件随便画的几个,自己看。  详情 回复 发表于 2018-3-27 00:41
发表于 2018-3-27 00:41:25 | 显示全部楼层
本帖最后由 woaishuijia 于 2018-3-27 00:42 编辑 1 y: O1 _2 Q, _$ ^* j9 Z
JCKFC1997 发表于 2018-3-22 17:16" v8 g+ h% V5 B+ M* i
可以吼出来啊
. |; x$ Q& `; |6 T5 Q
已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。
7 i6 J# v: f' X下图是根据相同的条件随便画的几个,自己看。
( z* N2 k% z% T$ d( h5 v. l0 S9 v
+ g) v8 X! b; t( h1 ^# K
捕获.PNG
发表于 2018-11-11 09:32:10 | 显示全部楼层
下载个程序用用。
发表于 2018-12-3 09:59:14 | 显示全部楼层
woaishuijia 发表于 2015-1-19 12:325 b5 ^( f( u  p) O& U
怎么没人回呢?
0 U1 b* Z% D( J- l
请教一下版主,现在CAD编程方面,学习LISP和VBA各有什么优缺点?初学想学习编程,想询问一下版主学习哪个更合适一些?

点评

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

5 x0 T, [; e9 [简单说,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
# G: X- |8 U8 j简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面 ...

* S- Y3 [: ~3 y5 ^/ g. i好的,感谢版主大大。。。我初学了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' j; U) Y: G4 U& r9 g( g5 Z
好的,感谢版主大大。。。我初学了EXCEL的编程,感觉还可以,所以就想结合CAD编程,尝试在借助excel中的 ...
4 q0 U( ]' c# M9 J: j" Z* a
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编程简直易如反掌。而且VBA的一大优势就是在支持VBA的软件之间交换数据,所以你说的“借助excel中的数据,自动完成在CAD中的绘图”就是自然而然的事。
发表于 2018-12-8 21:17:27 | 显示全部楼层
woaishuijia 发表于 2018-12-8 20:33+ @; K  h- [& q
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...

6 j& `0 u' E3 q# P好的,感谢版主大大!给了我很大的信心!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则



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

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

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