phamthanhbinh 3.146 Báo cáo bài đăng Đã đăng Tháng 3 21, 2012 Xin lỗi cả nhà, các bác có thể cho em xin lisp vẽ cung khi biết điểm đầu, điểm cuối và chiều dài cung được không, hoặc có thể chỉ cho e la phải tìm cái này ở đâu không. Em đang rất cần. Thanks các bác trước. Hề hề hề, Tiện tay mình chỉnh luôn cái lisp của bác Hoành để bạn tùy nghi lựa chọn. Lệnh chạy là acl2. (setq saiso 0.0000001) (defun timx (k / xn xn+1) (setq xn (sqrt (- 6.0 (* 6.0 k))) xn+1 (+ xn (* 2.0 saiso)) ) (while (> (abs (- xn+1 xn)) saiso) (setq xn xn+1 xn+1 (- Xn (/ (- (sin Xn) (* k Xn)) (- (cos Xn) k))) ) ) xn ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:ACL (/ C L p1 p2 x dx h p3 oldos) ;;;Arc with Chord + Length (setq C (getreal "\nChieu dai day:") L (getreal "\nChieu dai cung:") ) (if (>= C L) (progn (alert "Error! Chieu dai day phai nho hon chieu dai cung!")(exit))) (setq p1 (getpoint "\nDiem chuan:") p2 (polar p1 pi C) k (/ C L) ) (setq x (* 2.0 (timx k)) x (/ (* x 180.0) pi) ;; convert radian to degree oldos (getvar "osmode") ) (setvar "osmode" 0) (command "arc" p1 "E" p2 "A" x) (setvar "osmode" oldos) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:ACL2 (/ C L p1 p2 x dx h p3 oldos) ;;;Arc with Chord + Length (setq p1 (getpoint "\nDiem neo thu nhat:") p2 (getpoint p1 "\n Diem neo thu hai: ") ) (setq C (distance p1 p2) L (getreal "\nChieu dai cung:") ) (if (>= C L) (progn (alert "Error! Chieu dai day phai nho hon chieu dai cung!")(exit))) (setq k (/ C L) x (* 2.0 (timx k)) x (/ (* x 180.0) pi) ;; convert radian to degree oldos (getvar "osmode") ) (setvar "osmode" 0) (command "arc" p1 "E" p2 "A" x) (setvar "osmode" oldos) (princ) ) Chúc bạn vui và hy vọng bạn sẽ hài lòng khi xài các lisp trên. 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
daik50 22 Báo cáo bài đăng Đã đăng Tháng 3 21, 2012 Hề hề hề, Tiện tay mình chỉnh luôn cái lisp của bác Hoành để bạn tùy nghi lựa chọn. Lệnh chạy là acl2. (setq saiso 0.0000001) (defun timx (k / xn xn+1) (setq xn (sqrt (- 6.0 (* 6.0 k))) xn+1 (+ xn (* 2.0 saiso)) ) (while (> (abs (- xn+1 xn)) saiso) (setq xn xn+1 xn+1 (- Xn (/ (- (sin Xn) (* k Xn)) (- (cos Xn) k))) ) ) xn ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:ACL (/ C L p1 p2 x dx h p3 oldos) ;;;Arc with Chord + Length (setq C (getreal "\nChieu dai day:") L (getreal "\nChieu dai cung:") ) (if (>= C L) (progn (alert "Error! Chieu dai day phai nho hon chieu dai cung!")(exit))) (setq p1 (getpoint "\nDiem chuan:") p2 (polar p1 pi C) k (/ C L) ) (setq x (* 2.0 (timx k)) x (/ (* x 180.0) pi) ;; convert radian to degree oldos (getvar "osmode") ) (setvar "osmode" 0) (command "arc" p1 "E" p2 "A" x) (setvar "osmode" oldos) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:ACL2 (/ C L p1 p2 x dx h p3 oldos) ;;;Arc with Chord + Length (setq p1 (getpoint "\nDiem neo thu nhat:") p2 (getpoint p1 "\n Diem neo thu hai: ") ) (setq C (distance p1 p2) L (getreal "\nChieu dai cung:") ) (if (>= C L) (progn (alert "Error! Chieu dai day phai nho hon chieu dai cung!")(exit))) (setq k (/ C L) x (* 2.0 (timx k)) x (/ (* x 180.0) pi) ;; convert radian to degree oldos (getvar "osmode") ) (setvar "osmode" 0) (command "arc" p1 "E" p2 "A" x) (setvar "osmode" oldos) (princ) ) Chúc bạn vui và hy vọng bạn sẽ hài lòng khi xài các lisp trên. Thanks bác Bình nhé, cái món lisp này em vẫn chẳng biết gì. Cảm ơn bác rất nhiều Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
tinhtuhop 0 Báo cáo bài đăng Đã đăng Tháng 9 6, 2012 Mình ko biết cách nào để vẽ 1 cung có kích thước chính xác. Ai vẽ được xin chỉ giúp. Thanks nhiều. Ví dụ: Cung có radius=1600, length=1000 (Dùng dimarc để đo). bạn vào Draw chọn ARC -> CHỌN STAR, CENTER,ANGLE vẽ 1 cung tròn với bán kính như bạn cho trước. sau dó bạn dùng đoạn thẳng nối 2 điểm đầu cung tròn đó để làm điểm bắt đầu cho cung tròn có kích thước mà bạn cho trước.sau dó bạn kéo dài cung đó ra và nhập độ dài cung mà bạn muốn vẽ đó sau đó bạn trim cung trước lúc bạn kéo dài cung ra là bạn sẽ có 1 cung với kích thước như bạn muốn.dùng lệnh dar để đo cung đó bạn sẽ thấy kích thước như bạn muốn! mình chỉ biết cách thủ công này thôi có gì xin chỉ giáo thêm! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
hoan2182 842 Báo cáo bài đăng Đã đăng Tháng 9 6, 2012 Hình như bác em Tinhtuhop nhầm lẫn khái niệm độ dài cung tròn và độ dài dây cung? Bác em thích làm thủ công thì làm theo các bước sau: Command: _arc (vẽ cung tròn: Srart , End , Radius ) Specify start point of arc or : Specify second point of arc or [Center/End]: _e Specify end point of arc: Specify center point of arc or [Angle/Direction/Radius]: _r Specify radius of arc: 1600 Command: LEn LENGTHEN Select an object or [DElta/Percent/Total/DYnamic]: Current length: 1805.6933, included angle: 65 Select an object or [DElta/Percent/Total/DYnamic]: t Specify total length or [Angle] <1.0000)>: 1000 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác