Đến nội dung


Hình ảnh
- - - - -

[Hỏi] Làm thế nào để hiện hành 1 đối tượng bất kỳ


  • Please log in to reply
13 replies to this topic

#1 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 12 November 2012 - 06:52 PM

Mình đang có 1 vấn đề như sau:
- Bình thường có thể chọn Layer hay TextStyle, Dim hiện hành
- Giờ có vấn đề mình có thể chọn 1 đối tượng Line, Pline hiện hành như trên được không?
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 12 November 2012 - 07:18 PM

Mình đang có 1 vấn đề như sau:
- Bình thường có thể chọn Layer hay TextStyle, Dim hiện hành
- Giờ có vấn đề mình có thể chọn 1 đối tượng Line, Pline hiện hành như trên được không?

Layer, TextStyle, DimStyle... là những thuộc tính của đối tượng. Khi nó current thì các đối tượng mới sinh ra sẽ mang các thuộc tính đó.
Line, Pline... là những đối tượng. Như vậy, khái niệm hiện hành của chúng nghĩa là sao? Bạn có thể cho ví dụ?
  • 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 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 12 November 2012 - 08:04 PM

Nếu bạn đã dùng Nova nó có tính năng này
Ví dụ như khi bạn click chọn PL,LWPL hiện hành thì sau khi ta thực hiện các thao tác như (chèn block,...) thì các đối tượng này sẽ tự động được chèn vào PL,LWPL đã được chọn (hiện hành)
Cám ơn!
  • 0

#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 November 2012 - 08:31 PM

Nếu bạn đã dùng Nova nó có tính năng này
Ví dụ như khi bạn click chọn PL,LWPL hiện hành thì sau khi ta thực hiện các thao tác như (chèn block,...) thì các đối tượng này sẽ tự động được chèn vào PL,LWPL đã được chọn (hiện hành)
Cám ơn!

Hề hề hề,
Thật tình chưa hiểu lắm câu hỏi của bạn. Phải chăng khái niệm hiện hành của bạn là chỉ những đối tượng được chọn???
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 13 November 2012 - 07:20 AM

Cái này liên quan đến dữ liệu mở rộng Xdata
Nghĩa là nếu tôi gán tên PL bằng a khi goi tên a thì PL sẽ được thực thi theo tên của nó
Nhưng tôi không rành về thứ này !
  • 0

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 November 2012 - 07:48 AM

Cái này liên quan đến dữ liệu mở rộng Xdata
Nghĩa là nếu tôi gán tên PL bằng a khi goi tên a thì PL sẽ được thực thi theo tên của nó
Nhưng tôi không rành về thứ này !

Nếu bạn không rành về Xdata thì bạn có thể sử dụng biến toàn cục
1. Gán ename hoặc object của Pline cho biến
2. Xem và gọi biến thì Pline sẽ được thực thi theo tên của biến
  • 1

#7 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 13 November 2012 - 07:58 AM

Tôi là dân thiết kế giao thông, cũng từng sử dụng Nova trong vài năm.
Nay đã thiết kế đường bằng VnRoad.
Nhưng tôi cũng không hiểu NguyenNgocSon muốn đề cập đến vấn đề gì nữa.
Hay NguyenNgocSon diễn đạt bằng Video thử.
  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 13 November 2012 - 08:05 AM

Cái này liên quan đến dữ liệu mở rộng Xdata
Nghĩa là nếu tôi gán tên PL bằng a khi goi tên a thì PL sẽ được thực thi theo tên của nó
Nhưng tôi không rành về thứ này !

Bạn nói lòng vòng nên hơi khó hiểu. Nếu muốn gán xdata thì nói ngay từ đầu sẽ dễ hiểu rồi, đằng này...
Khi gán xdata thì có thể chọn đối tượng thông qua xdata, bởi nó cũng là 1 thuộc tính, như khi ta chọn đối tượng thông qua layer, color, dimstyle, textstyle...
Khái niệm "khi gọi tên a thì PL sẽ được chọn" thì hiểu được, nhưng khái niệm "khi gọi tên a thì PL sẽ thực thi theo tên của nó" thì khó hiểu quá.
  • 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.


#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 November 2012 - 08:29 AM

Bạn nói lòng vòng nên hơi khó hiểu. Nếu muốn gán xdata thì nói ngay từ đầu sẽ dễ hiểu rồi, đằng này...
Khi gán xdata thì có thể chọn đối tượng thông qua xdata, bởi nó cũng là 1 thuộc tính, như khi ta chọn đối tượng thông qua layer, color, dimstyle, textstyle...
Khái niệm "khi gọi tên a thì PL sẽ được chọn" thì hiểu được, nhưng khái niệm "khi gọi tên a thì PL sẽ thực thi theo tên của nó" thì khó hiểu quá.

Ý bạn ấy chắc là khi viết hàm gọi đến tên đó (đại diện cho PL) thì hàm đó sẽ thực thi trên PL mà đã gán (chính là tên đó ) ấy mà
Để gán thì cũng có nhiều cách, đâu nhất thiết phải là Xdata
Mình thấy bài viết số 3 của NgocSon cũng đủ hiểu rồi.....
  • 1

#10 LoveLisp

LoveLisp

    biết lệnh extend

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

Đã gửi 13 November 2012 - 08:36 AM

Xin chào! Mình là dân giao thông, cũng từng dùng Nova và VNRoad, nhưng cũng không hiểu được câu hỏi của bạn NguyenNgocSon. AutoCAD không có khái niệm "đối tượng hiện hành", nó là một khái niệm mới do bạn tự đưa ra, vì vậy bạn cần diễn giải để người khác có thể hiểu được. Theo cách nói của bạn (ở #3), thì điều bạn muốn là:

- Gán (P)Line hiện hành
- Chèn block dọc theo (P)Line đó

Như vậy đúng chưa bạn? Nếu đúng như vậy thì vấn đề không có gì phức tạp cả, có thể viết một lisp làm các việc sau:

Lần chạy lệnh đầu tiên:
- Chỉ định một (P)Line gán vào biến PLineHienHanh (không khai báo biến, nghĩa là không hủy sau khi kết thúc lệnh)
- Rải block (nào đó) dọc theo biến PLineHienHanh (bằng lệnh Measure hoặc Divide).

Các lần chạy lệnh sau:
- Rải block (mà không cần hỏi lại PLineHienHanh, nhưng có tùy chọn cho phép thay đổi PLineHienHanh).
  • 0

#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 13 November 2012 - 08:45 AM

Mình thấy bài viết số 3 của NgocSon cũng đủ hiểu rồi.....

Một người hiểu >< Bốn người không hiểu! :lol:
  • 0

* 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.


#12 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 13 November 2012 - 09:02 AM

Hi. Cám ơn sự quan tâm của mọi người. Đúng như Tue_NV nói đúng ý mình. Bác có thể code 1 ví dụ cho tôi tham khảo không ?
  • 0

#13 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 13 November 2012 - 09:03 AM

Xin chào! Mình là dân giao thông, cũng từng dùng Nova và VNRoad, nhưng cũng không hiểu được câu hỏi của bạn NguyenNgocSon. AutoCAD không có khái niệm "đối tượng hiện hành", nó là một khái niệm mới do bạn tự đưa ra, vì vậy bạn cần diễn giải để người khác có thể hiểu được. Theo cách nói của bạn (ở #3), thì điều bạn muốn là:

- Gán (P)Line hiện hành
- Chèn block dọc theo (P)Line đó

Như vậy đúng chưa bạn? Nếu đúng như vậy thì vấn đề không có gì phức tạp cả, có thể viết một lisp làm các việc sau:

Lần chạy lệnh đầu tiên:
- Chỉ định một (P)Line gán vào biến PLineHienHanh (không khai báo biến, nghĩa là không hủy sau khi kết thúc lệnh)
- Rải block (nào đó) dọc theo biến PLineHienHanh (bằng lệnh Measure hoặc Divide).

Các lần chạy lệnh sau:
- Rải block (mà không cần hỏi lại PLineHienHanh, nhưng có tùy chọn cho phép thay đổi PLineHienHanh).

Chuẩn. Đúng ý mình. Nhưng cách nói cũng gần như tương tự nhau mà. Cám ơn sự quan tâm.
  • 0

#14 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 13 November 2012 - 09:15 AM

Mình đoán lờ mờ thế này: chương trình mà bạn chủ topic sử dụng sử dụng xdata để đánh dấu đối tượng theo thứ tự 1 hạng mục. chẳng hạn: công trình số 1, công trình số 2...
việc chọn 1 đối tượng làm hiện hành có nghĩa là thiết lập cho chương trình hiểu là cả 1 công trình được thiết lập hiện hành. các đối tượng thuộc công trình đó sẽ được ưu tiên xử lý với một số lệnh cụ thể thuộc chương trình đó.

Bên cấp thoát nước mình có 1 số chương trình làm việc kiểu như vậy. bản vẽ chạy cùng lúc nhiều tuyến ống thì khi thiết lập 1 tuyến nào đó là hiện hành thì toàn bộ các lệnh của chương trình chỉ xử lý với các đối tượng thuộc tuyến đó.
  • 0