Author Topic: difficult problem, entmake a cylinder  (Read 1436 times)

0 Members and 1 Guest are viewing this topic.

Q1241274614

  • Guest
difficult problem, entmake a cylinder
« on: March 16, 2013, 09:51:58 AM »
Code: [Select]
(DEFUN C:TT( / a ang b er1 er2 er3 l p  q r r1 r2)
  (vl-load-com)
  (setq p  (getpoint "\nSTA "))
  (setq q  (getpoint p "\nEND "))
  (setq l  300)
  (setq ang (angle p q))
  (setq r  (getdist "\nGG-radius"))
  (setq r1 (getdist "\nSTA-radius"))
  (setq r2 (getdist "\nEND-radius"))
  (if (null r)  (setq r 50))
  (if (null r1)  (setq r1 70))
  (if (null r2)  (setq r2 60))
  (setq er1 (cylinder p q r))
  (setq er2 (cylinder (polar p (+ (* pi 0.5) ang) l)(polar p (-  ang (* pi 0.5)) l) r1))
  (setq er3 (cylinder (polar q (+ (* pi 0.5) ang) l)(polar q (-  ang (* pi 0.5)) l) r2))
  (vlax-ldata-put er1 "GG" (strcat (itoa (fix (distance p q))) "X"(rtos r 2 0)))
  (vlax-ldata-put er2 "ZG" (strcat (itoa l) "X"(rtos r1 2 0)))
  (vlax-ldata-put er3 "ZG" (strcat (itoa l) "X"(rtos r2 2 0)))
  (princ)
)

(defun cylinder (p q r)
  (defun mxv ( m v )
    (mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
)
  (setq vec (mapcar '- q p)
   obj (vla-addcylinder (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3D-point p) r (setq hgt (distance p q)))
        mat (mapcar '(lambda ( v ) (trans v 0 vec t)) '((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0)))
  )
(vla-transformby obj
                (vlax-tmatrix
                    (append
                        (mapcar 'append mat
                            (mapcar 'list
                                (mapcar '+ (trans (list 0.0 0.0 (/ hgt 2.0)) vec 0 t)
                                    (mapcar '- p (mxv mat p))
                                )
                            )
                        )
                     
                       '((0.0 0.0 0.0 1.0))
                    )
                )
            )
  obj
  )


(vl-load-com) (princ)


« Last Edit: March 16, 2013, 11:32:04 AM by CAB »

HasanCAD

  • Swamp Rat
  • Posts: 1423
Re: "DIMENSION"
« Reply #1 on: March 16, 2013, 11:19:07 AM »
 :-)