Đến nội dung


Hình ảnh
- - - - -

cập nhật lại bản vẽ sau khi đã thay đổi lại mã dxf


  • Please log in to reply
10 replies to this topic

#1 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 19 January 2010 - 11:07 AM

qua diễn đàn em đã biết cách thay đổi mã dxf của một đỗi tượng
sau khi thay đổi mã em chưa biết làm thế nào để vẽ lại đối tượng với các thông tin đã thay đổi
em biết hàm entmod để cập nhật thông tin thay đổi và vẽ lại đối tượng nhưng dùng không được.(thông tin thì cập nhật nhưng không thấy vẽ lại)
cho em hỏi thêm: hàm entmod và entmake khác nhau như thế nào ah?
  • 0

#2 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 19 January 2010 - 11:20 AM

qua diễn đàn em đã biết cách thay đổi mã dxf của một đỗi tượng
sau khi thay đổi mã em chưa biết làm thế nào để vẽ lại đối tượng với các thông tin đã thay đổi
em biết hàm entmod để cập nhật thông tin thay đổi và vẽ lại đối tượng nhưng dùng không được.(thông tin thì cập nhật nhưng không thấy vẽ lại)
cho em hỏi thêm: hàm entmod và entmake khác nhau như thế nào ah?

Entmod là sửa thông tin đối tượng, tức bản thân đối tượng đó vẫn có tên gọi như ban đầu (ename và handle không đổi)
Entmake là tạo một đối tượng mới với thông tin đưa vào (ename và handle mới toanh)

Để biết Entmod "không dùng được" là tại sao thì bạn up code của bạn lên đây anh em giải thích cho.
  • 0

#3 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 19 January 2010 - 07:43 PM

Entmod là sửa thông tin đối tượng, tức bản thân đối tượng đó vẫn có tên gọi như ban đầu (ename và handle không đổi)
Entmake là tạo một đối tượng mới với thông tin đưa vào (ename và handle mới toanh)

Để biết Entmod "không dùng được" là tại sao thì bạn up code của bạn lên đây anh em giải thích cho.

không phải entmod của em không dùng được mà là sau khi entmod thông tin của đối tượng đã thay đổi, nó trả lại kết quả là danh sách liên hợp có những thông số thay đổi nhưng nó không thể hiện trên bản vẽ.
  • 0

#4 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 19 January 2010 - 09:53 PM

không phải entmod của em không dùng được mà là sau khi entmod thông tin của đối tượng đã thay đổi, nó trả lại kết quả là danh sách liên hợp có những thông số thay đổi nhưng nó không thể hiện trên bản vẽ.

thì vấn đề là ở chỗ nó không thay đổi trên bản vẽ. Bạn up code lên đi
  • 0

#5 tdvn

tdvn

    biết lệnh rotate

  • Members
  • PipPipPip
  • 134 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 20 January 2010 - 12:32 AM

không phải entmod của em không dùng được mà là sau khi entmod thông tin của đối tượng đã thay đổi, nó trả lại kết quả là danh sách liên hợp có những thông số thay đổi nhưng nó không thể hiện trên bản vẽ.

Có một số loại đối tượng kg cập nhật ngay mà sau khi save và mở lại bản vẽ mới thấy hoặc bạn dùng hàm entupd để buộc cad cập nhật ngay cho bạn
  • 1

#6 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 20 January 2010 - 08:38 PM

cảm ơn a em làm được rồi, chắc code em viết chưa chuẩn.
còn hàm entupd của anh tdvn làm như thế nào vậy anh, có thể ứng dụng khi nào được ah.a nói cụ thể hơn cho em được không.
  • 0

#7 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 20 January 2010 - 09:37 PM

ah cho em hỏi thêm: lisp có hỗ trợ hàm nào để thêm thông tin về đối tượng theo ý của mình không.
ví dụ như: các thông tin của đường dimangular có thông tin về góc của đối tượng, em muốn thêm thông tin về chiều dài của đối tượng có được không.
còn nữa, có phải nếu thông tin thêm vào đối tượng mà không đúng:vd nếu đường line em thêm vào thông tin chiều dài của đối tượng nhưng không thỏa mãn với tọa độ điểm đầu và điểm cuối của đối tượng(nghĩa là chiều dài thêm vào không đúng với chiều dài thật) thì cad sẽ thể hiện đối tượng ntn?
  • 0

#8 tdvn

tdvn

    biết lệnh rotate

  • Members
  • PipPipPip
  • 134 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 21 January 2010 - 12:39 PM

ah cho em hỏi thêm: lisp có hỗ trợ hàm nào để thêm thông tin về đối tượng theo ý của mình không.
ví dụ như: các thông tin của đường dimangular có thông tin về góc của đối tượng, em muốn thêm thông tin về chiều dài của đối tượng có được không.
còn nữa, có phải nếu thông tin thêm vào đối tượng mà không đúng:vd nếu đường line em thêm vào thông tin chiều dài của đối tượng nhưng không thỏa mãn với tọa độ điểm đầu và điểm cuối của đối tượng(nghĩa là chiều dài thêm vào không đúng với chiều dài thật) thì cad sẽ thể hiện đối tượng ntn?

Hàm entupd dùng như sau : entupd(name);
Muốn thêm dữ liệu vào đối tượng bạn tham khảo dữ liệu mở rộng, mỗi đối tượng có thể mang theo 16K dữ liệu, dữ liệu này kg ảnh hưởng, kg làm thay đổi đối tượng. Trên diễn dàn đã có, bạn tìm thử xem. Sau đây là một số hàm về dữ liệu mở rộng (dlmr):
;Lấy dlmr
(defun laydlmr( tendlmr tendt / ent)
(setq ent (entget tendt (list tendlmr)))
(setq ent (cdr (cadr (cadr (assoc -3 ent)))))
)
;Tạo dlmr
(defun taodlmr( tendt code tendlmr dl / ent loai)
(if (null (tblsearch "APPID" tendlmr)) (regapp tendlmr))
(setq ent (entget tendt (list tendlmr)))
(setq loai (cons code dl))
(if (null (assoc -3 ent))
(progn
(setq ent (append ent (list (list -3 (list tendlmr loai)))))
(entmod ent)
))
)
;Thay đổi dlmr
(defun t-doidlmr(tendt code tendlmr dl / ent entold entnew loai)
(if (tblsearch "APPID" tendlmr)
(progn
(setq ent (entget tendt (list tendlmr)))
(setq loai (cons code dl))
(setq entold (assoc -3 ent))
(setq entnew (list -3 (list tendlmr loai)))
(entmod (subst entnew entold ent))
)
(taodlmr tendt code tendlmr dl)
)
)
;Nối thêm dlmr kiểu string
(defun noi-dlmr( tendt code tendlmr dl / data)
(setq data (laydlmr tendlmr tendt))
(if (and data (<= (cpos data dl) 0))
(progn
(setq dl (strcat data " " dl))
(t-doidlmr tendt code tendlmr dl)
)
(taodlmr tendt code tendlmr dl)
)
)
  • 0

#9 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 21 January 2010 - 08:57 PM

hay quá anh tdvn ah,bg em mới biết về cái dlmr mà anh nói.em sẽ tìm hiểu thêm về nó, có gì mong a tiếp tục giúp đỡ.
còn về cái hàm entupd sao em vẫn không làm được vậy.cụ thể là: trong dimension style em chọn text style là standard, sau đó em vào text style (lệnh tắt là st) thay đổi chiều cao chữ. thì chiều cao chữ chưa thay đổi trên màn hình,nếu em chọn đối tượng sau đó gán cho nó kiểu dim vừa thay đổi nó mới cập nhật lại. em muốn dùng hàm entupd trong trường hợp này thì phải làm ntn.a có thể nói cụ thể cách dùng hàm trong ví dụ này hộ em.cảm ơn anh nhiều.
  • 0

#10 tdvn

tdvn

    biết lệnh rotate

  • Members
  • PipPipPip
  • 134 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 21 January 2010 - 11:31 PM

hay quá anh tdvn ah,bg em mới biết về cái dlmr mà anh nói.em sẽ tìm hiểu thêm về nó, có gì mong a tiếp tục giúp đỡ.
còn về cái hàm entupd sao em vẫn không làm được vậy.cụ thể là: trong dimension style em chọn text style là standard, sau đó em vào text style (lệnh tắt là st) thay đổi chiều cao chữ. thì chiều cao chữ chưa thay đổi trên màn hình,nếu em chọn đối tượng sau đó gán cho nó kiểu dim vừa thay đổi nó mới cập nhật lại. em muốn dùng hàm entupd trong trường hợp này thì phải làm ntn.a có thể nói cụ thể cách dùng hàm trong ví dụ này hộ em.cảm ơn anh nhiều.

Hàm entupd luôn dùng sau hàm entmod. Đối với một số đối tượng, đôi khi hàm entmod chỉ thay đổi dữ liệu nhưng kg thể hiện sự thay đổi đó ra màn hình thì hàm entupd ép cad thể hiện sự thay đổi đó ngay. Hàm entupd chỉ có tác dụng khi các đối số cung cấp cho hàm entmod đúng, tức dữ liệu do hàm entmod cung cấp đã đc cad chấp nhận. Công việc của mình kg dùng dimension nên cũng chưa dùng hàm entmod và entupd cho loại này. Bạn tìm hiểu thêm có gì cứ trình bày sẽ có nhiều bạn am hiểu về dimension giúp bạn.
  • 0

#11 do tien hung arsenal

do tien hung arsenal

    biết zoom

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

Đã gửi 22 January 2010 - 09:08 AM

vậy cho em hỏi:nếu em thay đổi thông tin về đối tượng nhưng thông tin thêm vào này không đúng với những dữ liệu khác của đối tượng thì cad sẽ không thể hiện gì có đúng không ah.(ví dụ em thay đổi tọa độ điểm đầu của đt là line nhưng điểm cuối không thay đổi và chiều dài(nếu có thông tin này,thực tế không có) thì cad sẽ thể hiện ntn?em thử với dimangular nhưng chẳng thấy thay đổi gì cả mặc dù thông tin trong list phức hợp của đối tượng có thay đổi nhưg trong bản vẽ thì vẫn vậy.
anh tdvn có thể viết cho em xin một đoạn code ngắn ngắn có sử dụng hàm entupd dc kô?em cảm ơn anh nh!
  • 0