QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6天前
查看: 7487|回复: 32
收起左侧

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

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

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

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

x
本帖最后由 gongwen0519 于 2015-1-14 00:21 编辑
  y% q& \$ V, ]0 B" }4 v- y& k8 V2 n) S. `% _! I
本题是继这个http://www.3dportal.cn/discuz/fo ... ead&tid=1449246【作出最长值(不限软件)】帖子而来,该帖椭圆中心可知,同时也可以随便得到椭圆上的三点。$ f8 k- X* B% Y1 R" K
4 R+ F: I: k/ i9 E; H/ y  i4 }
几何作图作出OX、OY的方向与长度即可,ACAD则画出整个椭圆:
3 p' p( a6 \1 ~1 t8 G9 d6 u  n
" Q8 C; _  A6 J& _! X# c$ D8 p# d0 F(这类问题在工程实际中很实用。)
8 o. K' s& m: Z4 F* w5 m. b
+ `  a3 J* T7 e! E* e% r4 m; t. c! I tuoyuan.png + ~% i, z; b1 l4 b

评分

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

查看全部评分

发表于 2015-1-19 12:32:28 | 显示全部楼层 来自: 中国辽宁抚顺
怎么没人回呢?
  1. Sub C3PE()
    6 ]" Q( l* M( o; X  [. G! [/ t
  2. Dim P0(2) As Double, P1 As Variant, P2 As Variant, P3 As Variant, P4 As Variant
    - `1 k- C  r1 V" d
  3. Dim X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, X3 As Double, Y3 As Double* {6 j$ K) j  \) Y% I4 [! t
  4. Dim A As Double, B As Double, C As Double, F As Double, Ang As Double, R1 As Double, R2 As Double* g0 D3 @; s8 ]# ?# G. [5 K2 e# [
  5. On Error GoTo 10
    5 a4 s5 o/ s7 S+ g" W
  6. With ThisDrawing2 Z  P7 o% c* ~2 T  [. O" [
  7. P1 = .Utility.GetPoint(, "指定中心点")
    ( H/ ?4 T/ i7 m# z2 {" b9 C1 D
  8. P2 = .Utility.GetPoint(, "指定第一点")
    9 l- S+ D# J- F" ]; O; a% o
  9. P3 = .Utility.GetPoint(, "指定第二点")
    * D  ]2 |4 _5 Z1 M5 K% G9 a) N4 N8 U
  10. P4 = .Utility.GetPoint(, "指定第三点")9 g& n! o4 W) x# Q7 v
  11. X1 = P2(0) - P1(0)
    - E: b8 v5 f, T$ |8 A* M8 `$ J
  12. Y1 = P2(1) - P1(1)  {% \( a/ b. `) ?
  13. X2 = P3(0) - P1(0)" C! k4 H: _: I/ O! l
  14. Y2 = P3(1) - P1(1)
    3 l4 O3 _* x  A  E2 |* C
  15. X3 = P4(0) - P1(0)8 O) f% j0 Z* v- o! t
  16. Y3 = P4(1) - P1(1)% p' {7 M% }$ h- {# L7 t9 h8 H
  17. A = (X1 * Y1 - X2 * Y2) * (Y1 ^ 2 - Y3 ^ 2) - (X1 * Y1 - X3 * Y3) * (Y1 ^ 2 - Y2 ^ 2)" B: p0 M2 K" T- {' l% [
  18. If A <> 0 Then
    ) Q' i) R  x2 W6 }
  19. B = ((X1 ^ 2 - X2 ^ 2) * (X1 * Y1 - X3 * Y3) - (X1 ^ 2 - X3 ^ 2) * (X1 * Y1 - X2 * Y2)) / A
    7 g  ?0 P7 m1 i+ S; d
  20. C = ((X1 ^ 2 - X3 ^ 2) * (Y1 ^ 2 - Y2 ^ 2) - (X1 ^ 2 - X2 ^ 2) * (Y1 ^ 2 - Y3 ^ 2)) / A
    . G1 D8 F9 Y4 i! g
  21. F = -X1 ^ 2 - B * Y1 ^ 2 - C * X1 * Y17 T' K# [: P) S3 T3 A
  22. If C = 0 Then* X4 _" N( C1 i5 _: k! c
  23. If B > 0 And F < 0 Then
    - D8 @5 H" Z% z) l
  24. Ang = 07 ~  O" L" E  U
  25. R1 = Sqr(-F)
    9 W' g" p/ h8 G# C7 f, P
  26. R2 = Sqr(-F / B)# D/ a( Z' D* n- L! S5 s' P
  27. Else$ U1 ?' M" h. s# L& {. l+ ]: }
  28. Exit Sub; ]5 U  L& L9 _0 ?, H
  29. End If" b9 D2 N) N5 _
  30. Else
    9 g8 N& F0 N1 B' h# N0 W
  31. If B = 1 Then
    - q7 _, l0 F" |2 U1 |
  32. If F < 0 And C > -2 And C < 2 Then) b" G+ ~5 y5 ~1 t4 Y$ a
  33. Ang = .Utility.AngleToReal(45, acDegrees)
    9 w$ ~0 x4 y$ f
  34. R1 = Sqr(-2 * F / (2 + C))2 [- \7 l! F7 v6 @" A3 q' o% }- q
  35. R2 = Sqr(-2 * F / (2 - C))
    & @' K$ u7 ^+ G
  36. Else
    & ]8 n* A5 i# V" M0 O3 a
  37. Exit Sub" Q' ^8 f2 O7 J+ W
  38. End If
    & R: y7 n9 Q0 \* i0 D8 m  \
  39. Else
      F4 a, V* t3 E5 {
  40. Ang = Atn(C / (1 - B)) / 2
    2 X$ H2 y# i' L9 m+ v1 Z* C
  41. If Ang < 0 Then Ang = Ang + .Utility.AngleToReal(90, acDegrees); g3 a, j$ ]1 T( \, G1 z
  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 _0 b- w  U0 ^* T5 t5 a: ~6 n
  43. B < -1 And F > 0 And C > (B + Tan(Ang) ^ 2) / Tan(Ang) And C < -(1 + B * Tan(Ang) ^ 2) / Tan(Ang) Then
    : J# ]. e2 C! ~; j! X+ ^
  44. R2 = -F * (1 + Tan(Ang) ^ 2)! o" H5 [1 h% E* Y/ B: v/ [8 e
  45. R1 = Sqr(R2 / (1 + B * Tan(Ang) ^ 2 + C * Tan(Ang)))
    + D( H; L% m, R" j  |4 C
  46. R2 = Sqr(R2 / (B + Tan(Ang) ^ 2 - C * Tan(Ang)))
    . b: x% o- b8 {: a1 V  Y
  47. Else
    , l4 j- a0 G6 U' p- ^
  48. Exit Sub
      f; L% E9 b' G9 H" Y+ R
  49. End If
    " G; @; H  [( S# h1 h; y
  50. End If$ I' P% @7 Z7 U8 u+ Z( ]3 @; \
  51. End If: l2 c8 R; A" U: O' G5 r
  52. Else7 D$ M/ B/ l# c$ D
  53. Exit Sub8 {+ y7 G. p# y9 ?. _( Y
  54. End If
    ! @- k* c# X. B+ s
  55. If R2 < R1 Then
    ! g% V. q6 p0 h9 U
  56. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang, R1), R2 / R1
    8 \' k2 D& s: A' n8 ^
  57. Else7 Y* n% r( H7 \4 p
  58. .ModelSpace.AddEllipse P1, .Utility.PolarPoint(P0, Ang + .Utility.AngleToReal(90, acDegrees), R2), R1 / R26 @3 n- Q0 o+ I+ j* o
  59. End If
    ! `0 B: U" j. K* d2 V7 _6 K4 k3 E
  60. End With
    / [' ?: p) C0 C7 W; |; W8 L
  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 编辑
9 {0 h- a5 S9 u9 y
7 I7 b4 @- T7 i再来个LISP
  1. (defun c:c3pe
    : @9 h6 [( w: R! K
  2.        (/ old p0 p1 p2 p3 p4 x1 y1 x2 y2 x3 y3 a b c f ang r1 r2)
      O- a3 J( j+ Q1 _9 J/ @
  3.   (setvar "CMDECHO" 0)4 s0 A# B1 i3 N+ R) ^+ N2 ^% F
  4.   (setq p0 (list 0 0 0)
    ; p8 x8 u* V- y. X5 d. m
  5. p1 (getpoint "\n 指定中心点:")' }% y! p. I( y7 g8 w. @: S
  6. p2 (getpoint "\n 指定第一点:")
    $ m& B& |( v& J$ P
  7. p3 (getpoint "\n 指定第二点:")
    : {' t/ D/ ~# x; `8 }7 _5 k& g
  8. p4 (getpoint "\n 指定第三点:")
    ) c) o# s2 Z1 s7 n
  9. a  (car p1)
    & _9 p  |% O4 V7 c: ?, G
  10. b  (cadr p1)3 p  r. [# W1 A2 s9 k9 g
  11. x1 (- (car p2) a)
    & D) ]' n0 q$ M4 F5 B- a
  12. y1 (- (cadr p2) b)! D6 d% g" U2 F" w* G- c1 @; D
  13. x2 (- (car p3) a)& Q2 L' f0 k0 X3 h
  14. y2 (- (cadr p3) b)- |6 b! b& s. d  v0 x8 A
  15. x3 (- (car p4) a)
      F8 @, I7 i% p% I+ U# Q- f
  16. y3 (- (cadr p4) b)
    ) [% d$ v) u$ Z- M6 x
  17. a  (- (* (- (* x1 y1) (* x2 y2)) (- (* y1 y1) (* y3 y3)))
    $ }  h; {" F; X$ G- T
  18.        (* (- (* x1 y1) (* x3 y3)) (- (* y1 y1) (* y2 y2)))/ K# q; p4 }8 Q6 @# H$ c
  19.     )1 A2 ^( S, `" h
  20.   )
    ( H. J& x4 ^5 |
  21.   (if (/= a 0.0)
    4 E& u  H" X- h2 U
  22.     (progn
    8 h, x7 t) r" ?& J/ t9 q
  23.       (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- (* x1 y1) (* x3 y3))); |* [4 i1 z+ Q/ d$ `
  24.       (* (- (* x1 x1) (* x3 x3)) (- (* x1 y1) (* x2 y2)))
    / \5 ]5 ~  e4 C5 n' ^! l% {
  25.    )7 ^) T! C$ O0 ?8 w& e* P
  26.    a
    . u$ V2 s' b# ?4 o- _8 {; K1 _
  27.        )
    ( v8 V) S4 Z* Z& O
  28.      c (/ (- (* (- (* x1 x1) (* x3 x3)) (- (* y1 y1) (* y2 y2)))3 g. ], I2 v/ e9 s7 C: K6 f9 z! o
  29.       (* (- (* x1 x1) (* x2 x2)) (- (* y1 y1) (* y3 y3)))( Y, i0 i- U  l5 ~2 u4 Z9 @3 n  ?
  30.    )
    " [4 t* |3 w. A0 L
  31.    a; ]3 ^* D$ G- `6 H3 u
  32.        )0 S, ?% \" r* B# b
  33.      f (- 0 (* x1 x1) (* b y1 y1) (* c x1 y1))8 c& M; ]7 @# U6 ^6 ^
  34.       )
    ! f! C- C, u: ?/ Z8 K( r
  35.       (if (zerop c)
    ; n  i" y  Z% @$ b, P: R0 T
  36. (if (and (> b 0.0) (< f 0.0))
    5 [0 r: A$ k/ x8 v1 P# C8 [
  37.    (setq ang 0.0
    : @% r) N2 d9 f% c) B* f. a5 t! E
  38.   r1  (sqrt (- 0 f))4 u7 Q! V8 c9 m( z
  39.   r2  (sqrt (- 0 (/ f b)))
    + o0 N( E0 v# M
  40.    )2 {. |7 H, ^6 b: \/ B
  41. )
    - K/ y4 G( h8 y+ G! p# l  v$ i
  42. (progn
    % L8 W' c, A3 T% ?
  43.    (if (= b 1.0)8 o5 u2 h6 X& L  Q9 {1 r* P
  44.      (if (and (< f 0.0) (> c -2.0) (< c 2.0))
    3 V$ G( `4 i/ T7 C+ n% n
  45.        (setq ang (/ pi 4)
    ! |8 A( y( |! k+ q3 D
  46.       r1 (sqrt (* -2 (/ f (+ 2 c))))
    , |4 ]2 z6 R  }) }# Z8 h
  47.       r2 (sqrt (* -2 (/ f (- 2 c))))
    ( Y8 H9 L; @. H) @$ u# y2 r# x/ m
  48.        ), t" a0 m8 ~" f+ h
  49.      )$ f9 r, i- K$ }. Y
  50.      (progn
    / G# p, p9 o# b' T# p8 g( B6 [* @
  51.        (setq ang (/ (atan (/ c (- 1 b)))
    4 @4 J6 v, I3 |
  52.       23 @+ z0 o! x# [5 U: f& X9 A
  53.    )
    3 w( e$ B5 e( ]# R& k
  54.        )2 d) G" j4 I  y- |
  55.        (if (< ang 0.0); z( [6 r% R4 H! V7 ?' {: `4 [
  56.   (setq ang (+ ang (/ pi 2)))0 t6 Q& G+ Z1 \0 _# D# O4 ]( Z
  57.        )% {4 U- k' ~" q% d
  58.        (setq a (/ (sin ang) (cos ang)))
    1 K' ~; F0 o1 k' s9 ^) [4 U4 H& F
  59.        (if (or (and (> b -1.0)8 D. v2 F0 T5 \$ k0 `. z1 o
  60.       (< f 0.0)
    8 K" t& M. |) h" X% @5 o4 u7 d4 W
  61.       (> c (/ (- -1.0 (* b (* a a))) a))) ^9 y( j! M# w) f) p$ p; X
  62.       (< c (/ (+ b (* a a)) a))
    $ `) r  }0 l3 L8 g* O
  63.         )
    + i/ j& {/ d1 x
  64.         (and (< b -1.0)' \6 }" G6 ~* I6 P
  65.       (> f 0.0)
    - }9 W3 _% K9 [1 t; W
  66.       (> c (/ (+ b (* a a)) a))0 h! _8 ~0 N/ D! I. J
  67.       (< c (/ (- -1.0 (* b (* a a))) a))
    / f0 p. ?# k# A8 `
  68.         )* t+ g6 d3 n4 a$ i# q! N7 q' d6 r' o, ?
  69.     )
    : J9 q% D! C# m% j
  70.   (setq r2 (* -1 f (1+ (* a a)))5 B! u- h' ]+ G5 x: n
  71.         r1 (sqrt (/ r2 (+ 1 (* b a a) (* c a))))
    + i  T2 {( D/ a9 O1 W0 q0 w7 n
  72.         r2 (sqrt (/ r2 (- (+ b (* a a)) (* c a))))  e$ O9 ~  j8 ]3 R8 j# N
  73.   )
    ! L) W5 H+ W9 L4 A5 \1 R9 T: Z
  74.        )9 \: h  u+ A/ G% @
  75.      )3 @9 r* D/ Q9 D- D% L
  76.    )
    + c- Z( T0 L" r0 X4 }
  77. )6 a& q  _" R0 r+ z5 x8 w! x
  78.       ). ^( B7 z. T/ p( X2 e& k
  79.     )
    , \  l" {# Y7 `" a
  80.   )7 O% W8 W: |9 P6 }3 O  F
  81.   (if r1
    ( J  r" g; Y6 C. N2 N/ _
  82.     (progn0 B, E! Q% D) G, i
  83.       (setq old (getvar "OSMODE"))
    ' p+ }5 S/ S+ w7 {9 h
  84.       (setvar "OSMODE" 0)
    6 i* K6 B/ H: X9 a! |0 }: ?0 t; r
  85.       (command "ellipse"2 [' u& o5 S: B
  86.         "c"; Q) \$ ?$ A  q
  87.         p1
    3 x+ `# U# H  S4 h( O0 C. I6 `  T" ^
  88.         (polar p1 ang r1)( }* {0 ]9 ~( y' \, y
  89.         r2- J9 O" ^9 E: F
  90.       )/ X( `6 Y5 z" ~0 a; t
  91.       (setvar "OSMODE" old)
    5 L4 ]+ ?/ `2 V* p9 v
  92.     )
    4 ?/ O8 r' o9 [+ z4 Y$ @% W
  93.   )
    3 v* i3 V8 q0 f) B1 b) B
  94.   (princ)( x# k: a. T$ x; \8 x+ \7 P: t
  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
2 n) A: B8 \2 b0 j2 c7 _* n& q% h已知椭圆的中心点,将3点代入椭圆的一般方程,用解析几何的方法计算即可。
( b* K; u: p4 q2 r4 O) K% I/ j
可以不解方程,有纯几何方法解的(指能作出椭圆的长短轴的方向与长度)。
 楼主| 发表于 2015-1-19 20:45:01 | 显示全部楼层 来自: 中国北京
本帖最后由 gongwen0519 于 2015-1-19 20:55 编辑 + e3 R9 D5 N0 k! Z( Z
woaishuijia 发表于 2015-1-19 19:43 static/image/common/back.gif8 U7 u  P, y( A3 {
再来个LISP

' `4 Q3 x+ O; ^3 N7 V. w' p1 n; r7 N. y- {; Y
woaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码,手工复制或清理太费时间),谢谢。。  L+ D* A! |2 K; y7 l/ K

* ?" l5 `1 z" h1 d8 P8 \6 |. L  u; \看来大家和曾经的楼主一样,看到圆锥二次曲线就生威蹙眉。
0 i4 P" X) ^- k3 x$ @) \8 u4 w" b( b, E" ^" d7 A1 u1 J
如果用尺寸约束与驱动,把椭圆约束到这些参数上也是可以的呀。! d9 N8 E: W3 C4 C

' L0 M4 D+ e3 \$ v- `; R( v6 w4 s谢谢woaishuijia版主的VBA与lsp,今后工作中我就用您的程序了。
+ p, J) z! `3 K7 ~3 i+ ?! |+ b, U+ [( M/ K( l
为增加活跃一下的气氛,我还是稍后整理公布一下过程不是“很”复杂的几何作法吧。
发表于 2015-1-19 22:02:32 | 显示全部楼层 来自: 中国辽宁大连
能给出长轴和短轴的公式吗?和水平角度的计算
发表于 2015-1-19 23:10:51 | 显示全部楼层 来自: 中国辽宁营口
本帖最后由 woaishuijia 于 2015-1-19 23:25 编辑
; B2 x* E3 T9 j( y0 c0 ]' ?
gongwen0519 发表于 2015-1-19 20:45 http://www.3dportal.cn/discuz/static/image/common/back.gif
* T( h# R' V0 R$ lwoaishuijia版主,劳驾您将两个程序的文本文件打个压缩包吧(三维网论坛的网页代码复制每行后都带乱码, ...
. j% \* D( w# f

0 y  P6 X+ U& c7 ]4 T& Z3 q& o% j C3PE.rar (4.96 KB, 下载次数: 25)
 楼主| 发表于 2015-1-20 00:04:33 | 显示全部楼层 来自: 中国北京
lisc2000 发表于 2015-1-19 22:02 static/image/common/back.gif& @. [3 }# C& j5 e: ^' d! \( U2 E& ]
能给出长轴和短轴的公式吗?和水平角度的计算
- D  M6 X/ B% ^8 Z; d; T
已经整理好一种几何解法:0 C, u. B: |0 R* f6 W

" j4 D8 B0 c+ j/ W% x! `0 i前面的说明:
* i2 j2 ]& a% \# T) q( t  B7 d
6 b  m# _: v9 F+ R3 K d001.png & l8 q- Z: f: ~' c+ F6 A7 p3 @# g2 y* r
+ |3 D. v* x0 m# A2 }* V. \
作图过程:
+ U- Q9 M5 O3 |5 y
, L3 _. u( E! G d002.png
5 P9 ^7 P3 E+ x: v1 U; w) l, D% a  E/ Y: Q# o2 f
d003.png
* s7 }& Y1 N) x7 C- g: [! J下图是OP的作法:
% x; l! o: p0 c1 Y d004.png
$ y9 I  a* R* H' P7 E4 E' v最后完成椭圆的长短半轴:
' \; {/ X- d# \
6 l- T3 F, x) \ d005.png
5 ~1 E& h" k" _. i/ a) |1 E$ V- p1 _9 H! K6 d1 [! L

( J, }  c, K9 f! g

评分

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

查看全部评分

 楼主| 发表于 2015-1-20 00:11:41 | 显示全部楼层 来自: 中国北京
woaishuijia 发表于 2015-1-19 23:10 static/image/common/back.gif

9 m1 i, G4 l9 ^$ j- Q/ |' ~6 U谢谢,收藏了。
发表于 2015-1-20 13:46:59 | 显示全部楼层 来自: 中国天津
学习了。     
发表于 2018-3-15 10:26:44 | 显示全部楼层 来自: 中国浙江宁波
woaishuijia 发表于 2015-1-19 19:43
. q1 }% ^6 c3 F, Y5 s再来个LISP

% C; h: Z, S2 s3 n1 p8 w这是什么?代码?用于CAD?

点评

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

4 n2 X2 E/ z# S( [7 R: v& x是的。AutoCAD是一款极为优秀的二次开发平台软件,支持多种(比如C、.net、LISP、VBA、脚本)编程工具(语言)。用户可用其创制属于自己的个性化命令。一些常见的国产CAD软件(如PCCAD、开目、机械工程师等)就是在这个平台上二次开发的绘图软件产品。本帖的二楼、四楼就是针对楼主所提问题,分别用VBA和LISP编写的“已知中心及其上三点作椭圆”命令的程序代码。八楼附件是包含程序的工程文件,在AutoCAD绘图界面的“工具”菜单下使用相应的命令加载工程文件后,就可以像平时使用CAD命令画直线、画圆一样,使用这个自制命令,根据已知中心及其上三点画出椭圆了。
发表于 2018-3-15 20:02:56 | 显示全部楼层 来自: 中国浙江宁波
TOPSOLID
% w  z; s$ p# Q# [; `5 S用中心点加圆上两点即可

点评

做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。  详情 回复 发表于 2018-3-16 05:11
发表于 2018-3-16 05:11:36 | 显示全部楼层 来自: 中国北京
JCKFC1997 发表于 2018-3-15 20:02
6 u$ [+ |3 t1 ?1 i/ K9 L/ @TOPSOLID " ]* ~; {. a& h6 S- c2 E- \; K# A
用中心点加圆上两点即可
4 Q7 b/ J! Q# ?3 x
做不到。结果不唯一。再增加一个条件才可以,比如轴方向或椭圆上的另一个点。
发表于 2018-3-22 17:16:50 | 显示全部楼层 来自: 中国浙江宁波
可以吼出来啊
& K/ z# \. p" k1 Z' \) c

可以

可以

点评

已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。 下图是根据相同的条件随便画的几个,自己看。  详情 回复 发表于 2018-3-27 00:41
发表于 2018-3-27 00:41:25 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2018-3-27 00:42 编辑 7 K* d. |, A6 V$ G% Z7 F- F+ L
JCKFC1997 发表于 2018-3-22 17:164 d8 V4 R0 ]4 A# ]; u$ }- b5 O* i
可以吼出来啊

/ u. D: n2 \6 w2 F: |: O. |- \已经说过了,根据椭圆中心和其上两点,不能确定一个椭圆。如果只有这三个条件,可以画出无数个椭圆。你画了其中的一个,说明不了任何问题。# _2 y4 Q6 D2 q4 w7 Z; K
下图是根据相同的条件随便画的几个,自己看。" h& D+ \. @5 q, _; F

! ]% Z$ k0 i: W3 j: U
捕获.PNG
发表于 2018-11-11 09:32:10 | 显示全部楼层 来自: 中国广东佛山
下载个程序用用。
发表于 2018-12-3 09:59:14 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2015-1-19 12:32
8 r# ]0 o  g* w* ^5 C# e% X0 B; x怎么没人回呢?
% P* f4 K+ C6 q6 Y+ |. v! K- M
请教一下版主,现在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
) {6 X7 U3 o; K+ J+ d请教一下版主,现在CAD编程方面,学习LISP和VBA各有什么优缺点?初学想学习编程,想询问一下版主学习哪个 ...
) c3 t/ ?) P3 H2 ^, 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, E3 H+ N1 G$ V: w2 x
简单说,VBA是微软的东西,是建立在VB(可视化Basic,一种面向WINDOWS系统的图形化编程工具)基础上的面 ...

2 s: `2 e4 N% s+ u+ c; X/ 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- Q: m& d% h2 |, I2 H* f7 g# u/ J0 U
好的,感谢版主大大。。。我初学了EXCEL的编程,感觉还可以,所以就想结合CAD编程,尝试在借助excel中的 ...

2 X. M$ c) @  ~2 p- aEXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编程简直易如反掌。而且VBA的一大优势就是在支持VBA的软件之间交换数据,所以你说的“借助excel中的数据,自动完成在CAD中的绘图”就是自然而然的事。
发表于 2018-12-8 21:17:27 | 显示全部楼层 来自: 中国
woaishuijia 发表于 2018-12-8 20:330 N4 {# W* B8 {* G) ~
EXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...
' G% Q& I8 L# E, u2 C% r
好的,感谢版主大大!给了我很大的信心!
发表于 2019-1-29 12:43:15 | 显示全部楼层 来自: 中国辽宁
woaishuijia 发表于 2018-12-8 20:33
9 f' m1 o7 _0 I: n! e5 ]2 _  R2 tEXCEL的编程就是VBA啊,如果你已经会了EXCEL的VBA,又能够熟练使用CAD画图,那使用VBA做CAD的二次开发编 ...
2 n( s" e, w, Y( m3 K. n9 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
; P4 c" H% J/ P, J6 F老师啊!CAD的VBA没有录制宏功能啊?而且外安装的VBA模块帮助文件全是英文版的!和OFFICE的VBA相比较,麻 ...
% m* {6 M7 A/ j: s  w$ G+ S- n6 L
把邮箱给我
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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