CAD中用宗地線提取占用的房屋線型別

2022-10-08 18:42:16 字數 3497 閱讀 2288

房地一體中填寫界址標示表,需宗地每條線識別其壓蓋的房屋線(jmd)型別

注:宗地線需要轉為多段線

沒有找到vlisp風格樣式

(princ "\n 只保留jzd和jmd圖層,先limits命令設定範圍,再關閉捕捉功能。命令:jxlx")

(defun c:jxlx()

(setq ents (ssget "x" (list '(8 . "jzd") '(0 . "lwpolyline" ))))

(print (sslength ents))

(setq m 0)

(setq f (getfiled "指定輸出檔案路徑" "" "xls" 1) f (open f "w"))

(repeat (sslength ents)

(setq ss (ssname ents m))

(command "_zoom" "o" ss)

(command "")

(setq hbh1 (entget ss '("*")))

(setq hbhend (cdr (assoc 1000 (cdr(cdr(assoc "south" (cdr (assoc -3 hbh1))))))))

(setq endata (entget ss))

(setq daochu (strcat "a" hbhend "\t"))

;(print daochu)

(setq xx1 0.0)

(setq yy1 0.0)

(setq n 0)

(repeat (length endata)

(setq zbiao (nth n endata))

(if (= 10 (car zbiao))

(progn

(if(= yy1 xx1)

(progn

(setq xx1 (car(cdr zbiao)))

(setq yy1 (car(cdr(cdr zbiao))))

(setq xx2 (car(cdr zbiao)))

(setq yy2 (car(cdr(cdr zbiao))))

)(progn

(setq xx3 (car(cdr zbiao)))

(setq yy3 (car(cdr(cdr zbiao))))

(setq cd (rtos(sqrt(+(expt(- xx3 xx2) 2) (expt(- yy3 yy2) 2)))2 2))

(setq xx4 (+ xx2 (/ (- xx3 xx2) 2.0)))

(setq yy4 (+ yy2 (/ (- yy3 yy2) 2.0)))

(if(< 0.01 (abs (- (abs (- xx3 xx2)) (abs (- yy3 yy2)))))

(progn

(setq pt1 (list (- xx4 0.02) (- yy4 0.02)))

(setq pt2 (list (+ xx4 0.02) (+ yy4 0.02)))

)(progn

(setq pt1 (list (- xx4 0.03) (- yy4 0.02)))

(setq pt2 (list (+ xx4 0.03) (+ yy4 0.02)))))

(setq enjmd nil)

(setq enjmd (ssget "c" pt1 pt2 '((8 . "jmd"))))

(setq enjmd (ssget "c" pt1 pt2 '((8 . "jmd"))))

;(princ enjmd)

(if (/= (type enjmd) (type ents)) ;(= (ssname enjmd 0) nil)

(progn

(setq lxjmd "jzx")

;(print lxjmd)

)(progn

(setq enjmd1 (ssname enjmd 0))

(setq enjmd2 (entget enjmd1 '("*")))

(setq lxjmd (cdr(assoc 1000 (cdr(assoc "south" (cdr(assoc -3 enjmd2)))))))

) )

(setq daochu (strcat daochu cd "\t" lxjmd "\t"))

(setq xx2 xx3)

(setq yy2 yy3)

) )))

(if (= n (- (length endata) 1))

(progn

(setq xx3 xx1)

(setq yy3 yy1)

(setq cd (rtos(sqrt(+(expt(- xx3 xx2) 2) (expt(- yy3 yy2) 2)))2 2))

(setq xx4 (+ xx2 (/ (- xx3 xx2) 2.0)))

(setq yy4 (+ yy2 (/ (- yy3 yy2) 2.0)))

(if(< 0.01 (abs (- (abs (- xx3 xx2)) (abs (- yy3 yy2)))))

(progn

(setq pt1 (list (- xx4 0.02) (- yy4 0.02)))

(setq pt2 (list (+ xx4 0.02) (+ yy4 0.02)))

)(progn

(setq pt1 (list (- xx4 0.03) (- yy4 0.02)))

(setq pt2 (list (+ xx4 0.03) (+ yy4 0.02)))))

(setq enjmd nil)

(setq enjmd (ssget "c" pt1 pt2 '((8 . "jmd"))))

(setq enjmd (ssget "c" pt1 pt2 '((8 . "jmd"))))

(if (/= (type enjmd) (type ents)) ;(= (ssname enjmd 0) nil)

(progn

(setq lxjmd "jzx")

)(progn

(setq enjmd1 (ssname enjmd 0))

(setq enjmd2 (entget enjmd1 '("*")))

(setq lxjmd (cdr(assoc 1000 (cdr(assoc "south" (cdr(assoc -3 enjmd2)))))))

) )

(setq daochu (strcat daochu cd "\t" lxjmd "\t"))

))

(setq n (+ n 1))

)(write-line daochu f)

;(print daochu)

(setq m (+ m 1))

)(close f)

(princ)

)

CAD轉CAD注意事項

剛處理一批資料,在visualizer裡面檢視結果好好的,數目也正確,可到輸出結果一看,亂七八糟,牛頭不對馬嘴,鬱悶了一陣子之後,開始找原因。是這樣 cad中的綠地只是簡單的用一系列綠地符號表示,綠地的邊界由各種線狀地物構成,包括房屋邊界線,道路邊界線等。此次欲將綠地邊界線提取出來,思路自然是將各類...

CAD教程 CAD軟體中如何設定線纜?

在使用正版cad軟體進行cad電氣製圖的過程中,與線纜相關的操作是非常多的,很多地方都會用的線纜,所以學好線纜設定至關重要。接下來的cad教程就讓小編以正版cad軟體 浩辰cad電氣軟體為例來給大家介紹一下設定線纜的相關操作技巧吧!cad電氣製圖 線纜設定 首先開啟浩辰cad電氣軟體,然後找到並依次...

CAD怎麼算面積?CAD面積計算教程

在cad繪圖過程中,對於圖形面積的計算是必不可少的。那麼cad怎麼算面積呢?其實很簡單,接下來小編就以浩辰cad機械軟體為例來給大家簡單介紹一下cad面積計算的相關操作技巧吧!cad面積計算的操作步驟 首先在浩辰cad機械軟體中開啟圖紙,然後在選單欄中依次點選 浩辰機械 輔助工具 計算面積 如下圖所...