usercoolbo 发表于 2004-3-18 10:49:00

非常感谢MCCAD的帮助,帮我再修改一下程序吧,把椭圆改成块,还有能不能把你的思路讲一下啊,我也想学习学习!



另答楼上的师兄:我的本意是这样的,如附件所示,图上的高程点和高程标注是分开的,我想把所有的高程点导出成为*.DAT格式--->X坐标,Y坐标,Z坐标(X,Y坐标为圆心坐标,Z坐标为高程点旁边的标注高程).现在手头上用的都是一些小程序加起来完成的,要是能编一个程序一次性实现如上功能就好了!


BDYCAD 发表于 2004-3-18 12:02:00

這個可以生成塊的. 但不是無名塊. 還有個難點不懂的是. 不知如何在lisp中取得同心圓呢. 還望高手指教呀.


(DEFUN C:CBb()<BR>       (SETQ ss(ssget "x" '((0 . "CIRCLE"))))<BR>       (SETQ i 0)<BR>       (repeat (sslength ss)<BR>                       (setq a (ssname ss i))<BR>                       (setq b (substr (RTOS (GETVAR "CDATE") 2 8) 10 9))<BR>                       (setq centpoint (cdr (assoc 10 (entget a))))<BR>                       (command ".block" (strcat "cb" b "x") centpoint       a "")<BR>                       (command ".insert" (strcat "cb" b "x") centpoint "" "" "")<BR>                       (setq i (1+ i)))<BR>       (princ))

usercoolbo 发表于 2004-3-18 12:24:00

谢谢BDYCAD,LISP编写的程序看起来要简捷得多呵,我刚学LISP没多久,谢谢指点!


我试过了,可以用,但是好像在一个图形里边不能重复定义块,错误提示如下:


命令: .insert 输入块名或 [?] &lt;cb12185071x&gt;: cb12185072x 指定插入点或 <BR>[比例(S)/X/Y/Z/旋转(R)/预览比例(PS)/PX/PY/PZ/预览旋转(PR)]:<BR>输入 X 比例因子,指定对角点,或 [角点(C)/XYZ] &lt;1&gt;: 输入 Y 比例因子或 &lt;使用 X <BR>比例因子&gt;: 指定旋转角度 &lt;0&gt;:<BR>命令: .block<BR>输入块名或 [?]: cb12185072x 块“cb12185072x”已存在。是否重定义?[是(Y)/否(N)] <BR>&lt;N&gt;: 113.2141311567256,27.74713558478222<BR>请回答“是”或“否”。<BR>; 错误: 函数被取消<BR>是否重定义?[是(Y)/否(N)] &lt;N&gt;:


能不能修改一下,使其能自动替换以前定义的同名块?谢谢了

BDYCAD 发表于 2004-3-18 13:01:00

我認為不必用重復塊為佳. 這個小lisp是取系統的時間的里的數字轉為生成圖塊的名用的. 這樣就會使整下程序盡量避免生成同名的塊1.       我搞不懂你的意思. 為何要替換塊呢.       重做一個不同名的塊不可取嗎?

usercoolbo 发表于 2004-3-18 13:33:00

谢谢mccad的指点,我已经找到了解决的办法了啊!!十分感谢啊


以后有事还得多指教/!!!!

wyj_007 发表于 2004-3-18 14:22:00

我明白了,用这个程序加上一段读取圆边数字语句,可以变成做一个土方计算的程序,如可以做土方平衡计算。那只要提取小圆圆心X,Y坐标,加上圆边高程数字,再合成*.DAT格式---&gt;X坐标,Y坐标,Z坐标数据不就行了。

usercoolbo 发表于 2004-3-18 17:37:00

BDYCAD谢谢了,我再试试看,以前试的时候老是出现如上的错误,我也不知道是哪儿的问题!

usercoolbo 发表于 2004-3-18 17:43:00

wyj_007发表于2004-3-18 14:22:00static/image/common/back.gif我明白了,用这个程序加上一段读取圆边数字语句,可以变成做一个土方计算的程序,如可以做土方平衡计算。那只要提取小圆圆心X,Y坐标,加上圆边高程数字,再合成*...

<BR>WYJ_007,能不能把你的意思讲清楚点,我有点不大理解,那个计算土方的程序是不是要建三角格网及DTM模形,还是使用其它的方法的呢,也许可以把若干问题放到一个程序里边来,你觉得呢?

subtlation 发表于 2004-3-19 08:38:00

请教一下明总:


For i = 0 To ss.Count - 1<BR>        语句


next


是不是每次运行循环回到for语句时,ss,count就会重新计算一次?


还有就是CS.Erase语句把圆删除后,ss的实体实际数量已经发生了改变。那么ss.count是不是就会变小?


假定是实体ss(2)被删除,那么以后引用ss(2)时,是由原来的ss(3)代替呢,还是出错?

龙龙仔 发表于 2004-3-19 12:24:00

BDYCAD发表于2004-3-18 12:02:00static/image/common/back.gif這個可以生成塊的. 但不是無名塊. 還有個難點不懂的是. 不知如何在lisp中取得同心圓呢. 還望高手指教呀.



(DEFUN C:CBb()       (SETQ ss(ssget \"x\" '((0 . \"CI...


<FONT style="BACKGROUND-COLOR: #f3f3f3">下式選取所有半徑(群組碼 40)大於或等於 2.0 的圓周:</FONT>


<FONT style="BACKGROUND-COLOR: #f3f3f3">(ssget "X" '((0 . "CIRCLE") (-4 . "&gt;=") (40 . 2.0)))</FONT>


<FONT style="BACKGROUND-COLOR: #f3f3f3">下表展示可能的關係運算子:</FONT>


<FONT style="BACKGROUND-COLOR: #f3f3f3">選集過濾器串列的關係運算子</FONT>


<FONT style="BACKGROUND-COLOR: #f3f3f3">運算子        描述<BR>"*"         全部適用(一律為真) <BR>"="         等於 <BR>"!="         不等於 <BR>"/="         不等於 <BR>"&lt;&gt;"         不等於 <BR>"&lt;"         小於 <BR>"&lt;="         小於或等於 <BR>"&gt;"         大於 <BR>"&gt;="         大於或等於 <BR>"&amp;"         逐位 AND(只限整數群組) <BR>"&amp;="         逐位遮罩等號(只限整數群組) </FONT><BR>
页: 1 [2] 3 4
查看完整版本: 急求:将圆批量转为块的程序