Đến nội dung


Hình ảnh
- - - - -

[Hỏi]Cùng một lisp, hai bản vẽ hai định dạng khác nhau ?


  • Please log in to reply
3 replies to this topic

#1 lenhatanh

lenhatanh

    biết vẽ polygon

  • Members
  • PipPip
  • 75 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 06 November 2012 - 10:15 PM


(defun C:Cot (/ solan step che caotext daitext tiledo msso mss cdo pp p1)
(command "undo" "be")
(if (not tiled) (setq tiled 100.0))
(setq tiledo (getreal (strcat "\n TiLe Dung Ve <" (rtos tiled 2 0) ">...: ")))
(if tiledo (setq tiled tiledo))

(if (not mss) (setq mss 0.0))
(setq msso (getreal (strcat "\n Muc So Sanh Cua M.Cat <" (rtos mss 2 2) ">...: ")))
(if msso (setq mss msso))
(setq cdo (getreal "\n Cao Do Max Cua Duong D.Hinh...: "))
(setq di1 (getpoint "\n Diem Dat Thuoc...: "))

(setq step (/ tiled 100)
che (- cdo mss)
solan (+ (fix (/ (* che 100) tiled)) 1) sl nil)
(command "Osmode" 0)
(setq p1 (polar di1 (/ pi 2) 1))
;;------------------------------ Ghi Text Truc --------------------
(command "_text" "J" "C" di1 "0" (strcat "mss: " (rtos mss 2 2)))
(repeat solan
(setq pp (polar p1 (- pi) 0.4) mss (+ mss step))
(command "color" 7 ".TEXT" "MR" pp "0" (rtos mss 2 2))
(setq p1 (polar p1 (/ pi 2) 1))
)
;;-----------------------------------------------------------------
(setq mss nil)
(command "Osmode" 33 "color" "Bylayer" "ortho" "on" "redraw")
(command "undo" "e")
(princ)
)

Tôi có lập một Lisp để ghi cột text so sánh cho mặt cắt như trên,
- Khi mở một bản vẽ mới thì Lisp ghi ra các text có hai số sau dấu phẩy kể cả số 0
(ví dụ: MSS: 70.00; 70.50; 71.00...) - Xem chi tiết trong B.vẽ No1.dwg.
- Nhưng khi sử dụng lisp cho một số bản vẽ cũ và đơn vị khác gửi đến thì Lisp ghi ra các text có định dạng khác,
không còn số 0 sau dấu phẩy (ví dụ: MSS: 70; 70.5; 71...) - Xem chi tiết trong B.vẽ No2.dwg.
Nhờ các Bạn chỉ dùm tại sao kết quả lại có sự khác nhau giữa hai bản vẽ khi dùng lisp...
Link đến file CAD: http://www.mediafire...hpyjeh9rdu2n3pe
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 06 November 2012 - 10:27 PM

Bản vẽ nào không có 2 chữ số thập phân thì bạn add dòng này vào command trước khi dùng lisp xem ổn không:
(setvar "dimzin" 0)
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 07 November 2012 - 07:03 AM

Có người muốn thích "trim" số 0 đằng sau, có người muốn không thích "trim" số 0 đằng sau

Em muốn thay 0.000 bằng 0 và phía sau các số có giá trị thì 0 có số không (ví dụ 0.010 =0.01, 0.20 =0.2) tức là trim bớt cái đuôi ấy ạ. Anh giúp em với thank!

2./ Muốn "trim"
Bạn set biến dimzin =8
Command: dimzin
Enter new value for DIMZIN <8>: 8

-> Nguồn : http://www.cadviet.c...ic=67159&st=320

Hai bản vẽ của bạn lenhatanh, mình chưa mở, nhưng theo mô tả chắc chắn là khác ở biến dimzin, một bản set dimzin = 0; một bản set dimzin =8
Bạn lenhatanh mở help đọc thêm về biến hệ thống dimzin, biến luprec về quản lý số chữ số thập phân
  • 1

#4 lenhatanh

lenhatanh

    biết vẽ polygon

  • Members
  • PipPip
  • 75 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 07 November 2012 - 09:47 AM

Hai bản vẽ của bạn lenhatanh, mình chưa mở, nhưng theo mô tả chắc chắn là khác ở biến dimzin, một bản set dimzin = 0; một bản set dimzin =8
Bạn lenhatanh mở help đọc thêm về biến hệ thống dimzin, biến luprec về quản lý số chữ số thập phân

Cám ơn các bạn nhiều !
  • 0