請教一下兩組圖塊的區別
各位高手,我寫了一個程序,目的是給圖塊做標識及統計數量。現在遇到一個問題。附件圖檔中的兩組圖塊,一塊能順利標識統計,一組則不能。請各們高手幫忙分析一下原因。 本帖最后由 xyp1964 于 2011-4-25 09:50 编辑;;
(Defun C:tt (/ ss N s1 p0 pt p1 p2 tx)
(Setvar "Cmdecho" 0)
(Setq ss (Ssget '((2 . "E") (43 . 4.003)))
N-1
)
(while (setq s1 (ssname ss (setq n (1+ n))))
(Setq p0 (Cdr (Assoc 10 (Entget s1)))
pt (List (+ (Car p0) 2.5) (+ (Cadr p0) 2.5))
)
(Vl-Cmdf ".Text" "S" "Standard" "J" "Mc" pt "3.0" "0" "E")
)
(Setq pt (Getpoint "\npt: ")
p1 (List (+ (Car pt) 0.2) (+ (Cadr pt) 5.0))
p2 (List (+ (Car pt) 0.2) (- (Cadr pt) 5.8))
tx (Strcat "E:" (Itoa n) "-%%C4.000+0.003")
)
(Vl-Cmdf ".Text" "S" "Standard" "J" "Bl" p1 "3" "0" "合计: ")
(Vl-Cmdf ".Text" p2 "2.35" "0" tx)
(Setvar "Cmdecho" 1)
(Princ)
)
院長,我仔細研究你的程序,還是沒能找到我的程序問題在哪裡。因為我的原程序比較長,要篩選的東西也比較多,只有這組塊"E"會出問題。 本帖最后由 xshrimp 于 2011-4-25 10:30 编辑
这句有问题.(= (Cdr (Assoc 43 (Entget (Ssname All N)))) 4.003),不知道你这句目的是什么.
回复 xshrimp 的帖子
目的是找到(43 . 4.003)的塊"E".我上傳的程序只是原程序的一部分。原程序比較長,要篩選的"E“大小還有好幾種。為了不影響你們閱讀,我只是取了其中出錯的部份出來.我認為如果這句有問題,那麼B組的塊應該也是找不到,而不是只有A組的找不到。 各位大侠还有没有其他的解决办法啊? 如果我把塊E的大小由4.003改成4,並把相應的語句也改成4.那麼程序就可以把AB兩組都找到。請問一下各們大俠,這又是何解? 本帖最后由 snddd2000 于 2011-4-28 13:30 编辑
你是只按z轴的比例筛选的?单就ssget来说4.003和4是没有区别的 回复 snddd2000 的帖子
因為畫圖的時候,會有把圖塊做鏡像,X軸不一定會是正數,也不想用ABS,所以就選了Z軸。我也不知道怎麼回事,只要把不能被顯示的圖塊重新在屬性管理器中把三個比例值重新輪入一次。就可以找到了。 只要把Z軸的比例重新輸入一次都可以顯示出來了。
页:
[1]
2