Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

[Yêu cầu] Lisp lấy giá trị của dimenson, text và xuất ra file text


  • Please log in to reply
45 replies to this topic

#41 linhtu90protb

linhtu90protb

    Chưa sử dụng CAD

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

Đã gửi 20 June 2016 - 09:07 AM

Đây bạn:



(defun C:HA( / lst fn fw index x y z txt)	;Doan Van Ha Cadviet.com

 (princ "\nChon cac Text/Mtext/Dimension can xuat ra file...")

 (setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION"))))

       	fn (getfiled "Chon file de save" "" "csv" 1)

       	fw (open fn "w")

       	index 0 x 1 y 1 z 1)

 (repeat (length lst)

  (cond

   ((= (cdr (assoc 0 (entget (nth index lst)))) "TEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "text" (itoa x)) x (1+ x)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "MTEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "mtext" (itoa y)) y (1+ y)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "DIMENSION")

	(if (= (cdr (assoc 1 (entget (nth index lst)))) "")

 	(setq txt (strcat (rtos (cdr (assoc 42 (entget (nth index lst))))) "," "dim" (itoa z)) z (1+ z))

 	(setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "dim" (itoa z)) z (1+ z)))))

  (princ (strcat txt "\n") fw)

  (setq index (1+ index)))

 (close fw))


Sao e không dùng đc lisp này nhỉ. ko dùng đc lệnh HA


  • 0

#42 hoan3666

hoan3666

    biết pan

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

Đã gửi 09 November 2016 - 08:14 PM

chào mọi người cho em đào mộ tý, có ai sửa lips này thay vì xuất ra csv thì ghi vào clipbroad giúp em đc không

giống như lips này http://www.cadviet.c...lieu-kieu-text/

nhưng thay nhưng chọn được 1 vùng dữ liệu giống của bác hà

Bạn dùng cái này xem ưng bụng không?

(defun C:HA()	;Doan Van Ha Cadviet.com

 (princ "\nChon cac Text/Mtext/Dimension can xuat ra file...")

 (setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION"))))

       	fn (getfiled "Chon file de save" "" "csv" 1)

       	fw (open fn "w"))

 (foreach n lst

  (cond

   ((= (cdr (assoc 0 (entget n))) "TEXT") (setq txt (cdr (assoc 1 (entget n)))))

   ((= (cdr (assoc 0 (entget n))) "MTEXT") (setq txt (cdr (assoc 1 (entget n)))))

   ((= (cdr (assoc 0 (entget n))) "DIMENSION")

	(if (= (cdr (assoc 1 (entget n))) "")

 	(setq txt (rtos (cdr (assoc 42 (entget n)))))

 	(setq txt (cdr (assoc 1 (entget n)))))))

  (princ (strcat txt "\n") fw))

 (close fw))

xi

  • 0

#43 Bee

Bee

    biết lệnh ddedit

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

Đã gửi 09 November 2016 - 09:14 PM

chào mọi người cho em đào mộ tý, có ai sửa lips này thay vì xuất ra csv thì ghi vào clipbroad giúp em đc không

giống như lips này http://www.cadviet.c...lieu-kieu-text/

nhưng thay nhưng chọn được 1 vùng dữ liệu giống của bác hà

Ghi vào xong xuất sang đâu vậy ? Ghi chung chung thế này thì mở béng nó file cvs xong copy data vào clipboard là xong :D


  • 0

#44 hoan3666

hoan3666

    biết pan

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

Đã gửi 09 November 2016 - 09:19 PM

Ghi vào xong xuất sang đâu vậy ? Ghi chung chung thế này thì mở béng nó file cvs xong copy data vào clipboard là xong :D

mình muốn xuất ra excel nhưng mỗi lần coppy nó chỉ được 1 cột
 nên mình phải coppy nhiều lần. Nhưng mình coppy nhiều lần mà dùng lips bác Hà thì mỗi lần nó lại tạo thêm 1 file nên mình muốn lips đơn giản chỉ ghi vào rồi mình tự paste ra excel

cám ơn bác trả lời mình nha


  • 0

#45 Bee

Bee

    biết lệnh ddedit

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

Đã gửi 09 November 2016 - 10:15 PM

mình muốn xuất ra excel nhưng mỗi lần coppy nó chỉ được 1 cột
 nên mình phải coppy nhiều lần. Nhưng mình coppy nhiều lần mà dùng lips bác Hà thì mỗi lần nó lại tạo thêm 1 file nên mình muốn lips đơn giản chỉ ghi vào rồi mình tự paste ra excel

cám ơn bác trả lời mình nha

Xem phim hợp đồng hôn nhân xong thấy hài hài, code cho bạn nhé.

 

Đã chỉnh sửa chút xíu. CAD thế nào nó copy y nguyên, sang excel phải format cho đúng font nhé. ^_^

(defun C:HA1 (/ lst str txt 2ClipB)

  (vl-load-com)

  (princ "\nChon cac Text/Mtext/Dimension can copy..."
  )

  (setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION")))))

  (setq str "")

  (foreach n lst

    (cond

      ((= (cdr (assoc 0 (entget n))) "TEXT")
       (setq txt (cdr (assoc 1 (entget n))))
      )

      ((= (cdr (assoc 0 (entget n))) "MTEXT")
       (setq txt (cdr (assoc 1 (entget n))))
      )

      ((= (cdr (assoc 0 (entget n))) "DIMENSION")

       (if (= (cdr (assoc 1 (entget n))) "")

	 (setq txt (rtos (cdr (assoc 42 (entget n)))))

	 (setq txt (cdr (assoc 1 (entget n))))
       )
      )
    )

    (setq str (strcat str txt "\n"))
  )
  
  (vlax-invoke
    (vlax-get
      (vlax-get	(setq 2ClipB (vlax-create-object "htmlfile"))
		'ParentWindow
      )
      'ClipBoardData
    )
    'SetData
    "Text"
    str
  )
  (vlax-release-object 2ClipB)
)


  • 2

#46 Black Roses

Black Roses

    biết pan

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

Đã gửi 18 May 2017 - 03:28 AM

Chào mọi người, em có đang tìm lisp thực hiện chức năng cũng giống giống thế này, trước đây đã dùng rồi mà giờ không thể tìm lại được nữa. Đó là em mở file cad lên, rồi mở 1 file excel lên, sau đó chọn 1 text (hoặc Mtext) thì nó sẽ tự động lấy giá trị đó dán qua bên file excel, tương tự như thế này ạ

 

http://www.autocadpr...ocad-to_20.html

 

Em có tải cái đó về, nhưng không dùng được ạ :(, em đang dùng cad 2007, nó bảo lỗi NIL gì gì đó, em không biết sửa.

 

Mong được sự giúp đỡ, chân thành cảm ơn :)


  • 0