Author Topic: Space alignment line?I will only plane, don't know entmake? Thank you.  (Read 1519 times)

0 Members and 1 Guest are viewing this topic.

Q1241274614

  • Guest
Code: [Select]
(defun c:tt()
  (setq a 50)
  (setq b 150)
  (setq cd 13 cr 50)
  (setq d 20)
  (setq p0 (getpoint "选取点位置:"))
  (setq ang (* 0.5 pi))
  (setq pi90 (* 0.5 pi))
  (setq ang1  (- (+ ang pi) (* 2 (atan cr a))))
  (setq ang2  (+ ang (* 2 (atan cr b))))
  (setq p1 (polar p0 ang a)
p2 (polar p1 (+ ang pi90) d)
p3 (polar p2 ang1 a)
p6 (polar p0 (+ ang pi) b)
p5 (polar p6 (+ ang pi90) d)
p4 (polar p5 ang2 b)
p7 (polar p0 (+ ang pi90) (+ cr d))
td (tudu P4 (polar p0 (+ ang pi90) (+ cr cr d)) P3)
)
(entmakex (list (cons 0 "LWPOLYLINE")
                  (cons 100 "AcDbEntity")
                  (cons 100 "AcDbPolyline")
                  (cons 90 6)
  (cons 70 1)
  (cons 10 p4)   (cons 42  td)
  (cons 10 p3) 
  (cons 10 p2)
  (cons 10 p1)
  (cons 10 p6) 
  (cons 10 p5) 
  ))
(entmakex (list (cons 0 "CIRCLE")
                  (cons 10 p7)
                  (cons 40 cd)
  ))
  )


(defun tudu (P1 P2 P3)
 ((lambda (a) (/ (sin a) (cos a)))
      (/ (- (angle P2 p3) (angle p1 P2)) 2.)
     )
  )


I will only plane, don't know entmake? Thank you.
« Last Edit: December 06, 2012, 02:38:40 AM by Q1241274614 »

Q1241274614

  • Guest
Re: Space alignment line?I will only plane, don't know entmake? Thank you.
« Reply #1 on: November 27, 2012, 07:26:02 AM »
I need help!Thank you!

highflyingbird

  • Bull Frog
  • Posts: 415
  • Later equals never.
Re: Space alignment line?I will only plane, don't know entmake? Thank you.
« Reply #2 on: November 27, 2012, 08:29:36 PM »
See  here.
But I don't truly understand your question.Could you explain it easilier?
I am a bilingualist,Chinese and Chinglish.

MeasureUp

  • Bull Frog
  • Posts: 465
Re: Space alignment line?I will only plane, don't know entmake? Thank you.
« Reply #3 on: November 27, 2012, 09:00:08 PM »
It looks likely both of you can understand Chinese.
Perhaps Q1241274614 can give your question in Chinese and English.

highflyingbird

  • Bull Frog
  • Posts: 415
  • Later equals never.
Re: Space alignment line?I will only plane, don't know entmake? Thank you.
« Reply #4 on: December 01, 2012, 09:43:12 AM »
Code: [Select]
;;; 转换函数
(defun Trans1 (A B C p / )
  (if (caddr p)
    (MAT:mxp (cadr (Mat:Get3PMatrix a b c)) p)
    (Mat:mxp (cadr (Mat:Get3PMatrix a b c))
     (list (car p) (cadr p) 0 )
  )
)

other functions.
Code: [Select]
;;;-----------------------------------------------------------;;
;;; Vector Norm - Lee Mac       ;;
;;; Args: v - vector in R^n       ;;
;;;-----------------------------------------------------------;;
(defun Mat:norm ( v )
  (sqrt (apply '+ (mapcar '* v v)))
)

 
;;;-----------------------------------------------------------;;
;;; Vector x Scalar - Lee Mac       ;;
;;; Args: v - vector in R^n, s - real scalar       ;;
;;;-----------------------------------------------------------;;
(defun Mat:vxs ( v s )
  (mapcar (function (lambda ( n ) (* n s))) v)
)

;;;-----------------------------------------------------------;;
;;; Unit Vector - Lee Mac                                     ;;
;;; Args: v - vector in R^n       ;;
;;;-----------------------------------------------------------;;
(defun Mat:unit ( v )
  ( (lambda ( n )
      (if (equal 0.0 n 1e-14)
nil
(Mat:vxs v (/ 1.0 n))
      )
    )
    (Mat:norm v)
  )
)

;;;-----------------------------------------------------------;;
;;; Mat:v*v Returns the dot product of 2 vectors              ;;
;;;-----------------------------------------------------------;;
(defun Mat:Dot (v1 v2)
  (apply '+ (mapcar '* v1 v2))
)

;;;-----------------------------------------------------------;;
;;; Vector Cross Product - Lee Mac       ;;
;;; Args: u,v - vectors in R^3       ;;
;;;-----------------------------------------------------------;;
(defun Mat:v^v ( u v )
  (list
    (- (* (cadr u) (caddr v)) (* (cadr v) (caddr u)))
    (- (* (car  v) (caddr u)) (* (car  u) (caddr v)))
    (- (* (car  u) (cadr  v)) (* (car  v) (cadr  u)))
  )
)

;;;-----------------------------------------------------------;;
;;; Mat:trp Transpose a matrix -Doug Wilson-                  ;;
;;;-----------------------------------------------------------;;
(defun Mat:trp (m)
  (apply 'mapcar (cons 'list m))
)

;;;-----------------------------------------------------------;;
;;; Matrix x Vector - Vladimir Nesterovsky                    ;;
;;; Args: m - nxn matrix, v - vector in R^n                   ;;
;;;-----------------------------------------------------------;;
(defun Mat:mxv (m v)
  (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)
)

;;;-----------------------------------------------------------;;
;;; 点到矩阵的变换                                            ;;
;;;-----------------------------------------------------------;;
(defun MAT:mxp (m p)
  (reverse (cdr (reverse (MAT:mxv m (append p '(1.0))))))
)

;;;-----------------------------------------------------------;;
;;; Mat:mxm Multiply two matrices -Vladimir Nesterovsky-      ;;
;;;-----------------------------------------------------------;;
(defun Mat:mxm (m q)
  (mapcar (function (lambda (r) (Mat:mxv (Mat:trp q) r))) m)
)

 
;;;-----------------------------------------------------------;;
;;; Mat:Get3PMatrix  -Highflybird-                            ;;
;;;-----------------------------------------------------------;;
(defun Mat:Get3PMatrix (p1 p2 p3 / v1 v2 v3 mat org)
  (defun AppendMatrix (mat org)
    (append
      (mapcar 'append mat (mapcar 'list org))
      '((0. 0. 0. 1.))
    )
  )
   
  (setq v1 (Mat:unit (mapcar '- p2 p1)))
  (setq v2 (Mat:unit (mapcar '- p3 p1)))
  (setq v3 (Mat:unit (Mat:v^v v1 v2)))
  (setq v2 (Mat:unit (Mat:v^v v3 v1)))
  (setq mat (list v1 v2 v3))
  (setq org (mapcar '- (Mat:mxv mat p1)))
  (list
    (AppendMatrix mat org)     ;wcs->this transformation matrix
    (AppendMatrix (Mat:trp mat) p1) ;this->wcs transformation matrix
  )
)

« Last Edit: December 01, 2012, 09:54:59 AM by highflyingbird »
I am a bilingualist,Chinese and Chinglish.

Q1241274614

  • Guest
Re: Space alignment line?I will only plane, don't know entmake? Thank you.
« Reply #5 on: December 01, 2012, 09:53:19 AM »
Thank you very much.