Chuyển đến nội dung
Diễn đàn CADViet
xaydung

lisp chuyển region sang pline!!

Các bài được khuyến nghị

Các bạn ơi mình đang cần lisp có thể chuyển đối tượng region sang pline

VD: trên màn hình là 1 region, chạy lisp hỏi chọn region ,chương trình sẽ tự động chuyển region này sang pline kín

(tất nhiên region chỉ gồm arc và line)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Các bạn ơi mình đang cần lisp có thể chuyển đối tượng region sang pline

VD: trên màn hình là 1 region, chạy lisp hỏi chọn region ,chương trình sẽ tự động chuyển region này sang pline kín

(tất nhiên region chỉ gồm arc và line)

Có cần dùng lisp không? Bạn dùng lệnh BO tự khắc có pline kín. Region gốc ban đầu nếu không cần nữa thì cho hide hoặc del chúng đi?

Nếu bạn vẫn thích dùng lisp thì đây:

;;;-----------------------------------
(defun 1re2pl(e)
(command "explode" e "")
(command "pedit" (entlast) "y" "j" "all" "" "")
)
;;;-----------------------------------
(defun C:R2P( / ss e)
(setq ss (ssget '((0 . "REGION"))))
(while (setq e (ssname ss 0))
(1re2pl e)
(ssdel e ss)
)
(princ)
)
;;;-----------------------------------

  • Vote tăng 4

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Có cần dùng lisp không? Bạn dùng lệnh BO tự khắc có pline kín. Region gốc ban đầu nếu không cần nữa thì cho hide hoặc del chúng đi?

Nếu bạn vẫn thích dùng lisp thì đây:

;;;-----------------------------------
(defun 1re2pl(e)
(command "explode" e "")
(command "pedit" (entlast) "y" "j" "all" "" "")
)
;;;-----------------------------------
(defun C:R2P( / ss e)
(setq ss (ssget '((0 . "REGION"))))
(while (setq e (ssname ss 0))
(1re2pl e)
(ssdel e ss)
)
(princ)
)
;;;-----------------------------------

Cảm ơn bác nhé, đúng thứ em đang cần!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Em muốn gộp 2 lệnh là Region (thực hiện trước) và R2P như em làm dưới đấy mà sao nó không được anh nhỉ?
(defun C:Test()
(c:Region)
(c:R2p)
)
 
 

;;;----------------------------------- (defun 1re2pl(e) (command "explode" e "") (command "pedit" (entlast) "y" "j" "all" "" "") ) ;;;----------------------------------- (defun C:R2P( / ss e) (setq ss (ssget '((0 . "REGION")))) (while (setq e (ssname ss 0)) (1re2pl e) (ssdel e ss) ) (princ) ) ;;;-----------------------------------

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em muốn gộp 2 lệnh là Region (thực hiện trước) và R2P như em làm dưới đấy mà sao nó không được anh nhỉ?

(defun C:Test() (c:Region) (c:R2p))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

- tại đoạn trên ý tưởng của em là em gộp lệnh khi gõ test thì nó sẽ gọi lệnh region sau đó xong nó sẽ gọi tiếp lệnh R2P (nhưng không thành!)

- ý của em là khi thực hiện lệnh:

test -> chọn các đối tượng cần region (sẽ tạo thành region) -> chọn lại các đối tượng đó để chuyển thành pline close như R2P làm được đó (nếu chọn 1 lần mà nó vừa tạo region vừa chuyển thành pline close thì tốt qúa)!

 

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cảm ơnh anh nhiều.

tạo region xong rồi và không chuyển được thành pline close mà nó báo lỗi này là sao anh nhi?

; error: bad argument type: lselsetp nil

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ngộ nhỉ! Tôi test trên bản vẽ của bạn thì OK tuyệt đối. Các Pline tạo thành đều kín.

Sở dĩ có 2 cặp dấu nháy là vì:

- Cặp thứ 1 để kết thúc tập hợp chọn.

- Cặp thứ 2 để kết thúc lệnh.

Chẳng hiểu do đâu mà bạn chạy thì bị lỗi?

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

oh, bản vẽ này lại không đuợc nữa chứ, lúc nào rảnh anh coi giúp em với nhé!

error:bad argument type: lselsetp nilUnknown command "HA".  Press F1 for help.

Unknown command "HA".  Press F1 for help.

http://www.filedropper.com/drawing

 

error:bad argument type: lselsetp nilUnknown command "HA".  Press F1 for help.
Unknown command "HA".  Press F1 for help.
error:bad argument type: lselsetp nilUnknown command "HA".  Press F1 for help.
Unknown command "HA".  Press F1 for help.
error:bad argument type: lselsetp nilUnknown command "HA".  Press F1 for help.
Unknown command "HA".  Press F1 for help.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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))
 

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.cadviet.com/upfiles/3/122050_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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×