Đến nội dung


Hình ảnh
- - - - -

[Hỏi] biến nào quy ðịnh danh sách tỉ lệ annotative bản vẽ, và câu hỏi phụ


  • Please log in to reply
1 reply to this topic

#1 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 04 November 2013 - 11:14 AM

Mọi ngýời cho em hỏi trong Autocad thì danh sách tỉ lệ Annotative của bản vẽ ðang mở(danh sách ðýợc quy ðịnh khi ấn chuột trái vào ðây , Cad12)

101306_20131104_110636.png

Tức là cái em cần là một danh sách các tỉ lệ Annotative ðang dùng, (nếu có thể ðịnh nghĩa, phân biệt ðýợc cái nào ðã dùng, cái nào chýa dùng = có thể Purge ðýợc thì càng tốt)

    (ví dụ '("1:1" "1:10" "1:25" "1:100" "1:300" "1:350" "1:800")   )

Hai nữa là ngoài cách sử dụng lệnh AIOBJECTSCALEADD và AIOBJECTSCALEREMOVE ðể Add,Remove tỉ lệ Annotative cho ðối týợng, thì có cách nào ðể tác ðộng bằng lisp, qua mã DXF,hay ARX (>??) ðýợc không, nếu có thì cho em xin cách làm.

Em xin cảm õn


  • 0

#2 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 12 November 2013 - 09:08 AM

Toàn bộ câu hỏi của bạn là 1 chủ đề cao cấp mà ít người biết đến, theo mình thấy các lisper Cadviet đa số không quan tâm hoặc không dùng đến chức năng này.

Bạn nghiên cứu các dictionary sau:

"ACAD_SCALELIST" - từ điển liên quan đến danh sách tỷ lệ của bản vẽ.

"ACDB_ANNOTATIONSCALES" - từ điển liên quan đến tỷ lệ của đối tượng.

"AcDbContextDataManager" - từ điển liên quan đến các cài đặt về annotation.

 

Hàm này do bạn Thaistreetz viết thoả mãn câu hỏi đầu tiên của bạn

(defun Get-ScaleList (/ dic dxf-etg dxf-etg-m)
(defun dxf-etg (code etg) (cdr (assoc code etg)))
(defun dxf-etg-m (code etg / lst ) (foreach asoc etg (if (= code (car asoc)) (setq lst (append lst (list (cdr asoc)))))) lst)
(if (setq dic (dictsearch (namedobjdict) "ACAD_SCALELIST"))
(mapcar(function(lambda(x)(list(dxf-etg 300 x)(dxf-etg 140 x)(dxf-etg 141 x)))) (mapcar'entget (dxf-etg-m 350 dic))))) 

  • 1