Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

comp.cad.autocad AutoLISP FAQ (part 2/2) - samples, code
Section - [24] Circle/Arc Geometry: BULGE conversion, some trigonometry

( Part1 - Part2 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Cities ]


Top Document: comp.cad.autocad AutoLISP FAQ (part 2/2) - samples, code
Previous Document: [23] Polylines
Next Document: [25] DCL: listboxes with tabs or monotext font
See reader questions & answers on this topic! - Help others by sharing your knowledge
  What is the *BULGE* in a polyline?

  The bulge is the tangent of one forth of the included angle of a
  curved segment. A bulge 0.0 means a straight segment.
  Together with the start- and endpoint it is sufficient information to
  quickly calculate all other required information of a curved segment.
  A negative bulge is a rotation in clockwise direction ("mathematically 
  negative").

    arclength = radius*angle
    bulge     = tan( ang/4 )            (CCW: +, CW: -)
    angle     = 4*atan( bulge )
    bulge     = ( 2*altitude ) / chord  (CCW: +, CW: -)

  See also http://www.autodesk.com/support/techdocs/fax700/fax797.htm
  for a sample program or the book "Maximizing AutoLISP" [2]
  (Note: The R10/11 book -Vol II- contains a wrong bulge formula.)

  ;;; converts a bulged segment (bulge pt1 pt2) of a polyline
  ;;;   to a circle (ctr rad), the start- and endpoints are known
  ;;;   therefore the angles too: (angle ctr pt1)(angle ctr pt2)
  ;;; returns nil on a straight segment!
  ;;; (bugfixed version. Thanks to Sergei Komarov)
  (defun SEG2CIR (seg / bulge p1 p2 cot x y rad dummy)
    (if (zerop (car seg))  ;straight line => invalid circle
      nil
      (setq bulge (car seg) p1 (cadr seg) p2 (caddr seg)
        cot (* 0.5 (- (/ 1.0 bulge) bulge))
        x (/ (- (+ (car  p1) (car  p2))
                (* (- (cadr p2) (cadr p1)) cot)) 2.0)
        y (/ (+ (+ (cadr p1) (cadr p2))
                (* (- (car  p2) (car  p1)) cot)) 2.0)
        rad (distance (list (car p1) (cadr p1)) (list x y))
        dummy (list (list x y) rad))))   ; return this, I hate progn's

  ;;; inverse conversion
  ;;; calculates segment (bulge p1 p2) of arc
  ;;;   with given circle (ctr rad), start-angle, end-angle
  (defun ARC2SEG (cir ang1 ang2 / p1 p2)
    (setq p1 (polar (car cir) ang1 (cadr cir))
          p2 (polar (car cir) ang2 (cadr cir)))
    (list (arc2bul p1 p2 cir) p1 p2))

  ;;; calculates bulge of arc given the arc points and the
  ;;;   circle (ctr rad) [fixed by Serge Pashkov]
  (defun ARC2BUL (p1 p2 cir / ang)
    (setq ang (- (angle (car cir) p2) (angle (car cir) p1)))
    (if (minusp ang) (setq ang (+ (* 2.0 pi) ang)))
    (tan (/ ang 4.0)))

  ;;; returns angle of arc (bulge)
  ;;; The seg format is (bulge p1 p2)
  (defun BUL2ANG (seg / ctr)
    (- (angle (setq ctr (car (seg2cir seg))) (cadr seg))
       (angle ctr (caddr seg))))

  ;;; calculates angle of arc given the chord distance and radius
  (defun ARC2ANG (chord rad)
    (* 2.0 (atan
             (/ chord 2.0
               (sqrt (- (expt rad 2)
                        (expt (/ chord 2.0) 2)
  ) )      ) ) )     )  ;another way in the paren's world

  ;;; length of arc   = radius*angle,
  ;;; Note: +/-, you'll need (abs (arclen seg)) for the distance
  (defun ARCLEN (seg)
    (* (cadr (seg2cir seg))                 ;radius
       4.0 (atan (car seg))))               ;angle = 4*atan(bulge)

  (setq *INFINITY* 1.7e308)                 ; largest double
  (defun TAN (z / cosz) ; [fixed]
    (if (zerop (setq cosz (cos z))) *INFINITY*
      (/ (sin z) cosz)))
  (defun DTR (ang)(* pi (/ ang 180.0)))     ;degree to radian
  (defun RTD (ang)(/ (* ang 180.0) pi))     ;radian to degree

User Contributions:

1
Mar 17, 2023 @ 5:17 pm
Regardless if you believe in God or not, read this message!!!

Throughout time, we can see how we have been carefully conditioned to come to this point where we are on the verge of a cashless society. Did you know that the Bible foretold of this event almost 2,000 years ago?

In the book of Revelation 13:16-18, we read,

"He (the false prophet who deceives many by his miracles--Revelation 19:20) causes all, both small and great, rich and poor, free and slave, to receive a mark on their right hand or on their foreheads, and that no one may buy or sell except one who has the mark or the name of the beast, or the number of his name.

Here is wisdom. Let him who has understanding calculate the number of the beast, for it is the number of a man: His number is 666."

Referring to the last generation, this could only be speaking of a cashless society. Why so? Revelation 13:17 states that we cannot buy or sell unless we receive the mark of the beast. If physical money was still in use, we could buy or sell with one another without receiving the mark. This would contradict scripture that states we need the mark to buy or sell!

These verses could not be referring to something purely spiritual as scripture references two physical locations (our right hand or forehead) stating the mark will be on one "OR" the other. If this mark was purely spiritual, it would indicate both places, or one--not one OR the other!

This is where it comes together. It is amazing how accurate the Bible is concerning the implantable RFID microchip. Here is information from a man named Carl Sanders who worked with a team of engineers to help develop this RFID chip:

"Carl Sanders sat in seventeen New World Order meetings with heads-of-state officials such as Henry Kissinger and Bob Gates of the C.I.A. to discuss plans on how to bring about this one-world system. The government commissioned Carl Sanders to design a microchip for identifying and controlling the peoples of the world—a microchip that could be inserted under the skin with a hypodermic needle (a quick, convenient method that would be gradually accepted by society).

Carl Sanders, with a team of engineers behind him, with U.S. grant monies supplied by tax dollars, took on this project and designed a microchip that is powered by a lithium battery, rechargeable through the temperature changes in our skin. Without the knowledge of the Bible (Brother Sanders was not a Christian at the time), these engineers spent one-and-a-half-million dollars doing research on the best and most convenient place to have the microchip inserted.

Guess what? These researchers found that the forehead and the back of the hand (the two places the Bible says the mark will go) are not just the most convenient places, but are also the only viable places for rapid, consistent temperature changes in the skin to recharge the lithium battery. The microchip is approximately seven millimeters in length, .75 millimeters in diameter, about the size of a grain of rice. It is capable of storing pages upon pages of information about you. All your general history, work history, criminal record, health history, and financial data can be stored on this chip.

Brother Sanders believes that this microchip, which he regretfully helped design, is the “mark” spoken about in Revelation 13:16–18. The original Greek word for “mark” is “charagma,” which means a “scratch or etching.” It is also interesting to note that the number 666 is actually a word in the original Greek. The word is “chi xi stigma,” with the last part, “stigma,” also meaning “to stick or prick.” Carl believes this is referring to a hypodermic needle when they poke into the skin to inject the microchip."

Mr. Sanders asked a doctor what would happen if the lithium contained within the RFID microchip leaked into the body. The doctor replied by saying a terrible sore would appea (...)

Comment about this article, ask questions, or add new information about this topic:




Top Document: comp.cad.autocad AutoLISP FAQ (part 2/2) - samples, code
Previous Document: [23] Polylines
Next Document: [25] DCL: listboxes with tabs or monotext font

Part1 - Part2 - Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
rurban@xarch.tu-graz.ac.at (Reini Urban)





Last Update March 27 2014 @ 02:11 PM