[求助]请教高手如何取3DSOLID物件顶点座标列表?
<p>请教高手如何以LISP或VLISP办到点选3DSOLID物件,<br/>求附图ZZ.DWG,Z1,Z2,Z3,Z4高度及3DSOLID物件顶 <br/>点座标列表,麻烦诸位高手,谢谢! </p> <p>高手们:</p><p>麻烦给个思路或给个建议,指引个方向,该如何办到阿! 谢谢!</p> <p>同问啊</p> 不知有没有直接的办法?如果只是平面立体,用笨法可以复制一个后两次炸开成线,然后获取各端点。 <p>忘了原程序在哪了,如果要可以再找找,注意上面的邮箱早废了。测试过对楼主的图中的简单实体有效。</p> alin 发表于 2010-10-7 14:22 static/image/common/back.gif忘了原程序在哪了,如果要可以再找找,注意上面的邮箱早废了。测试过对楼主的图中的简单实体有效。
好东西麻烦来个源代码 本帖最后由 alin 于 2012-10-30 11:32 编辑
原代码找不到了,但是这个东西很久以前就被解码了,是(XOR 95)
(defun acis-decode (s) ; decode an encrypted acis-string of dxf group 1
(apply (function strcat)
(mapcar
(function (lambda (c) ; decode one char
(cond ; by Owen Wengerd
((= c 32) " ")
((= c 86) "I")
(T (chr (boole 6 c 95)))
)
)
)
(std-string->list s)
)
)
)
;;;
(defun STD-STRING->LIST (s / lst)
(if (= (type s) 'STR)
(while (/= s "")
(setq lst (cons (ascii (substr s 1 1)) lst) s (substr s 2))
)
)
(reverse lst)
)
本帖最后由 vlisp2012 于 2012-10-30 22:03 编辑
太高深了,楼上能在完善一下吗?
vlisp2012 发表于 2012-10-30 21:48 static/image/common/back.gif
太高深了,楼上能在完善一下吗?
在图档创建一个长方体,运行以下的测试程序:
(DEFUN c:TTT ()
(setq elist (entget (car (entsel "\nSelect a 3DSolid: "))))
(foreach e elist
(if (= (car e) 1)
(progn
(princ "\n")
(princ (acis-decode (cdr e)))
)
)
)
)
你会发现你得到的东西和用AUTOCAD输出的SAT文件很相似。可以这么说,除了用以上的解码程序,也可以用输出的SAT文件读取信息。但ACIS码比较复杂,不容易搞清里面的几何关系。 多谢alin 了,我在好好研究一下!!受教了!
页:
[1]
2