Đến nội dung


Hình ảnh
- - - - -

lisp chuyển region sang pline!!


  • Please log in to reply
32 replies to this topic

#21 kienduy19

kienduy19

    biết zoom

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

Đã gửi 15 June 2014 - 04:15 PM

http://www.cadviet.c...2050_bn_v_1.dwg

Lisp chuyển các đối tượng thành Region, sau đó chuyển Region về Pline.

; Doan Van Ha - CadViet.com - Ngay 14/6/2014
; Lisp: chuyen cac doi tuong thanh Region, sao do chuyen qua Pline.
(defun C:HA( / ssnho sslon ss i ent objArr)
 (vl-load-com) (setq cmd (getvar 'cmdecho)) (setvar 'cmdecho 0) (command "undo" "be")
 (setq ssnho (ssget "_X" '((0 . "REGION"))))
 (princ "\nChon cac doi tuong muon chuyen thanh Region...")
 (command "region" (ssget '((0 . "ARC,*LINE"))) "")
 (setq sslon (ssget "_X" '((0 . "REGION"))))
 (repeat (setq i (sslength ssnho))
  (ssdel (ssname ssnho (setq i (1- i))) sslon))
 (while (setq ent (ssname sslon 0))
  (setq ss (ssadd)
        obj (vlax-ename->vla-object ent)
        objArr (vlax-safearray->list (vlax-variant-value (vla-Explode obj))))
  (foreach memb objArr
   (setq ss (ssadd (vlax-vla-object->ename memb) ss)))
  (command "_.PEDIT" (ssname ss 0) "_YES" "_JOIN" ss "" "")
  (ssdel ent sslon))
 (setvar 'cmdecho cmd) (command "undo" "e") 
 (princ))
 

P/S: edit 16h 14/6/2014

 

mong cả nhà giúp đỡ .e mới vào diễn đàn

em đang thi công có một bản vẽ cần xuất ra tọa độ, có điều

bản vẽ đã bị dịch chuyển giờ em muốn bản vẽ đó đúng về theo tọa độ cũ ban đầu để xuất thêm các tọa độ tiếp theo thì làm như thế nào khi bản vẽ em đã bị dịch chuyển. các tọa độ đều xuất ra từ tâm đường tròn đỏ nhé bác bác

tọa độ M1, M2 là các tọa độ mốc chủ đầu tư cho

còn tọa độ 1,2,3 là các tọa độ em cần tìm và em đã tìm ra đúng với bản vẽ cũ

h bản vẽ đã bị thay đổi hết em mong các cao thủ chỉ dạy giúp em cách chuyển tọa độ về bản vẽ cũ  ,bùn quá em đã tìm tòi mà chẳng ra mong các cao thủ giúp em với

 em cảm ơn.


  • 0

#22 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 15 June 2014 - 05:27 PM

Bản vẽ này nếu m1,m2 đúng thì các điểm 1,2,3 lại không đúng. Bạn xem lại. Tên ucs là 1.

http://www.cadviet.c...2050_bn_v_1.dwg


  • 0

#23 phamthe

phamthe

    biết vẽ polygon

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

Đã gửi 15 June 2014 - 11:23 PM

Woa! cái này thì ổn rồi anh ha ạ, đỡ khá nhiều công rồi, cảm ơn anh nhiều nhiều nhé!


  • 0

#24 kienduy19

kienduy19

    biết zoom

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

Đã gửi 15 June 2014 - 11:36 PM

sao vậy bác tot77

em chưa hiểu ý của bác. các bản vẽ đó đúng tọa độ mà


  • 0

#25 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 16 June 2014 - 07:34 AM

Nếu muốn khớp hết các toạ độ thì bản vẽ phải như hình sau.

http://www.cadviet.c...50_bn_v_1_1.dwg

 

P/S: lần sau bạn lập topic mới chứ đừng chen vào topic của người khác như vầy.


  • 0

#26 kienduy19

kienduy19

    biết zoom

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

Đã gửi 16 June 2014 - 10:52 AM

bác tot77 a. nếu xoay như bác em nghĩ là được, nhưng bản vẽ của em đang chỉ bị dịch chuyển thôi chứ chưa xoay gì đâu.em nghĩ bác đang xoay gốc toạ độ rồi thì phải.

các bác cho em hỏi là tại sao toạ độ của việt nam mình cứ phải thêm số 23 vào toạ độ của x nhỉ các bác

mà em thấy cái list coorn ý nó cho toạ độ x thành y và y thành x các bác có ai viết lại list đó được không ạ


  • 0

#27 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 16 June 2014 - 11:02 AM

1.Tôi dựa trên toạ độ hai điểm M1,M2 của bản vẽ, nếu giữ nguyên vị trí của 2 điểm đó thì hệ trục phải xiên như vậy, và cả bản vẽ phải xoay như thế mơi khớp toạ độ. Tôi có vẽ thêm hệ trục oxy (bạn zoom all sẽ thấy), nếu bạn muốn xoay cho ox nằm ngang thì xoay cả bản vẽ (cả m1,m2).

2.Cái vụ thêm 23 thì tôi không biết, chắc là dựa vào hệ toạ độ quốc gia so với thế giới chăng?

3.Lisp coorn là lisp gì, bạn post lên xem.

 

Có lần tôi thấy có người dùng chữ E (east-hướng đông) thay cho X và N (north- hướng bắc) thay cho y. Chắc là so với điểm chuẩn trong hệ toạ độ quốc gia.


  • 0

#28 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 14 July 2015 - 01:08 PM

Woa! Thử lại cái này chắc ổn rồi.

; Doan Van Ha - CadViet.com - Ngay 14/6/2014
; Lisp: chuyen cac doi tuong thanh Region, sao do chuyen qua Pline.
(defun C:HA( / ssnho sslon ss i ent objArr)
 (vl-load-com) (setq cmd (getvar 'cmdecho)) (setvar 'cmdecho 0) (command "undo" "be")
 (setq ssnho (ssget "_X" '((0 . "REGION"))))
 (princ "\nChon cac doi tuong muon chuyen thanh Region...")
 (command "region" (ssget '((0 . "ARC,*LINE"))) "")
 (setq sslon (ssget "_X" '((0 . "REGION"))))
 (if ssnho
  (repeat (setq i (sslength ssnho))
   (ssdel (ssname ssnho (setq i (1- i))) sslon)))
 (while (setq ent (ssname sslon 0))
  (setq ss (ssadd)
        obj (vlax-ename->vla-object ent)
        objArr (vlax-safearray->list (vlax-variant-value (vla-Explode obj))))
  (foreach memb objArr
   (setq ss (ssadd (vlax-vla-object->ename memb) ss)))
  (command "_.PEDIT" (ssname ss 0) "_YES" "_JOIN" ss "" "")
  (ssdel ent sslon))
 (setvar 'cmdecho cmd) (command "undo" "e") 
 (princ))
 

 anh Hà ơi, cho em hỏi sao nó cứ tạo 1 pline close thành 2 đối tượng region chồng đè lên nhau anh nhỉ?


  • 0

#29 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 14 July 2015 - 05:28 PM

Các anh ơi giúp em với!


  • 0

#30 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 14 July 2015 - 09:04 PM

Lisp này chuyển region sang pline. Bạn đang có pline rồi thì dùng làm gì?


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


#31 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 14 July 2015 - 11:51 PM

lisp này của anh hà là chuyển Line sang Region và sau đó là chuyện chúng về Pline Close phải không ạ?

nếu đúng vậy thì cái file em đính kèm đây lúc đầu là các thửa đất bằng các đường Line, sau đó mình dùng cái code của anh Hà để chuyển chúng về Pline Close đóng cho từng thửa đất (mục đích để chạy số thửa và diện tích bằng code của anh elleHCSC) nhưng kết quả nó ra 2 Pline close trong cùng 1 thửa đất nhi? mượn tạm file trên diễn đàn để ví dụ nhờ các anh coi giúp

http://www.cadviet.c.../5/103752_1.dwg


  • 0

#32 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 15 July 2015 - 11:31 AM

Bản edit:

; Doan Van Ha - CadViet.com - Ngay 14/6/2014, edit 15/7/2015
; Lisp: chuyen cac doi tuong *Line,Arc thanh Region, sao do chuyen tu Region qua Pline.
(defun C:HA( / cmd dob ssnho sslon ss i ent obj) 
 (vl-load-com) (setq cmd (getvar 'cmdecho) dob (getvar 'delobj)) (setvar 'cmdecho 0) (setvar 'delobj 1) (command "undo" "be")
 (setq ssnho (ssget "_X" '((0 . "REGION"))))
 (princ "\nChon cac doi tuong muon chuyen thanh Region...")
 (command "region" (ssget '((0 . "ARC,*LINE"))) "")
 (setq sslon (ssget "_X" '((0 . "REGION"))))
 (if ssnho
  (repeat (setq i (sslength ssnho))
   (ssdel (ssname ssnho (setq i (1- i))) sslon)))
 (while (setq ent (ssname sslon 0))
  (setq ss (ssadd) obj (vlax-ename->vla-object ent))
  (foreach obj (vlax-safearray->list (vlax-variant-value (vla-Explode obj)))
   (setq ss (ssadd (vlax-vla-object->ename obj) ss)))
  (command "_.PEDIT" (ssname ss 0) "_YES" "_JOIN" ss "" "")
  (ssdel ent sslon)
  (command "erase" ent ""))
 (setvar 'cmdecho cmd) (setvar 'delobj dob) (command "undo" "e") 
 (princ))

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


#33 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 15 July 2015 - 02:30 PM

tuyệt vời! cảm ơn anh H nhé


  • 0