明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: changyiran

cass中的高程点块参照对象是如何制作的

  [复制链接]
发表于 2013-2-28 21:55 | 显示全部楼层
好的东西要加限制才能看的哦
发表于 2013-3-7 13:20 | 显示全部楼层
好的东西 要权限[em0]
发表于 2013-3-27 09:17 | 显示全部楼层
Gu_xl 发表于 2012-9-27 10:19
[/post]

可以生成高程点,但是好像cass不能使用这个高程点,难道哈cass自己生成的高程点不一样?
发表于 2013-3-27 09:19 | 显示全部楼层
生成的38.40点不能连成网。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-8-12 15:42 | 显示全部楼层
级别低,看不到啊
发表于 2014-8-18 18:05 | 显示全部楼层
我也想知道这个,学习学习
发表于 2014-10-4 22:05 | 显示全部楼层
没权限啊!新手想哭
发表于 2014-10-5 09:28 | 显示全部楼层
本帖最后由 wmz 于 2014-10-5 09:36 编辑
zhaiyake 发表于 2014-10-4 22:05
没权限啊!新手想哭
  1. 这个不要权限!
  2. ;;;;;南方CASS的地形点是用的属性块,他有打散和合并功能,不知是如何实现的(主要指算法)
  3. ;;;;;我现在用LISP写了有此功能的程序,展点,打散,合并等,经改动并与南方cass比较,
  4. ;;;;;运行速度几乎不相上下!现贴出来与大家交流探讨!
  5. ;;;;;以下是我的代码:
  6. (vl-load-com)
  7. ;;;地形展点主程序
  8. (defun c:ZGCD(/ bl fname blxs blc bl sw f pp pt JD y x h ha hb h1 h2 m)
  9.      (defun DSJ(PB)
  10.         (setq  PB (vl-string-translate "," " " PB))
  11.         (setq  PB (read (strcat "(" PB ")")))
  12.      )
  13.   (command "insert" "c:/cass80/blocks/gc200.dwg" (list 0 0 0) 1 1 0) ;;;在CASS环境下此句可不要
  14.   (command "erase" (entlast) "") ;;;在CASS环境下此句可不要
  15.   (regapp "SOUTH") ;;;在CASS环境下此句可不要
  16.   (command "layer" "m" "GCD" "c" "1" "" "L" "CONTINUOUS" ""  "")
  17.   (command "style" "HZ" "rs.shx,hztxt.shx" 0 1 0 "" "" "")
  18.   (setvar "userr1" 1000.0)
  19.   (setq blc (getvar "userr1") blxs (/ blc 1000.0))
  20.   (setq  bl (* blxs 0.2))
  21.   ; (setq name (getfiled "输入文件名:" "" "DAT;TXT;*" 8))
  22.   (setq fname "F:/lsyy/dxd.dat")
  23. ; (setq sw (getreal "输入水位:"))
  24. ; (setq JD (getreal "输入水下点高文字旋转角:"))
  25.   (setq sw 34.58 jd (/ (* 35 pi) 180.0))
  26. ; (setq JD (/ (* JD pi) 180.0))
  27.   (setq pp nil)
  28.   (setq   f (open fname "r"))
  29.   (while
  30.     (setq pp (read-line f))
  31.     (if pp (progn
  32.        (setq pp (cdr(DSJ pp)))
  33.        (setq  y (car pp)  x (cadr pp) h (last pp))
  34.        (setq pt (list y x h))
  35.        (setq ha (rtos h 2 2) hb (rtos h 2 1))
  36.        (setq  m (vl-string-search "." hb))
  37.        (if (= m nil)(progn(setq hb (strcat hb ".0") m (vl-string-search "." hb))));;;在CASS环境下此句可不要
  38.        (cond ((>= h sw)(MINSERTA pt bl ha))
  39.              ((<  h sw)(setq h1 (substr hb 1 m) h2 (substr hb (+ m 2) 1))
  40.                        (MINSERTS pt bl JD h1 h2)
  41.              )
  42.        )     
  43.      ))  
  44.    )
  45.      (close f)
  46.      (command "zoom" "e")
  47. )
  48. ;;;打散
  49. (defun c:DSKY (/ bl blc blxs ZG s n s0 s1 d1 m k jd b)
  50.   (setq blc (getvar "userr1") blxs (/ blc 1000.0))
  51.   (setq  bl (* blxs 0.4) ZG (* 2.0 blxs))
  52.   (setq s (ssget))
  53.   (setq n (sslength s) m 0)
  54.   (repeat n
  55.     (setq s0 (ssname s m) m (+ m 1) k 0)
  56.     (setq s1 (entget s0 (list "SOUTH")))
  57.     (setq d1 (cdr(assoc 10 s1)))
  58.     (setq JD (cdr(assoc 50 s1)))
  59.     (setq  b (cdadr (cadr (assoc -3 s1))))
  60.     (setq  b (vl-princ-to-string b))
  61.     (setq  b (vl-string-translate "" "" B))
  62.     (cond ((= b "202101")(setq height (last d1))
  63.      (MKINSERT d1 bl bl bl JD "202101")
  64.      (MKTEXTA d1 ZG JD (rtos height 2 2) "202111")
  65.     )
  66.     ((= b "186400")(setq H (rtos (last d1) 2 1))
  67.      (setq k (vl-string-search "." h))
  68.      (setq h1 (substr h 1 k) h2 (substr h (+ k 2) 1))
  69.      (MKINSERT d1 bl bl bl JD "186400")
  70.      (MKTEXTB d1 ZG JD h1 "186411")
  71.      (MKTEXTC d1 ZG JD h2 "186412")
  72.     )
  73.     )
  74.   )
  75.           (command "_.erase" s "")
  76. )
  77. ;;;合并
  78. (defun c:HBKY (/ bl blc blxs ZG lay s n s0 s1 d1 m k jd b STIME ETIME)
  79.   (command "layer" "m" "GCD" "c" "1" "" "L" "CONTINUOUS" ""  "")
  80.   (setq blc (getvar "userr1") blxs (/ blc 1000.0))
  81.   (setq  bl (* blxs 0.2) ZG (* 2.0 blxs))
  82.   (setq s (ssget))
  83.   (setq STIME (getvar "date"))
  84.   (setq n (sslength s) m 0)
  85.   (repeat n
  86.     (setq  s0 (ssname s m) m (+ m 1) k 0)
  87.     (setq  s1 (entget s0 (list "SOUTH")))
  88.     (setq lay (cdr(assoc 8 s1)))
  89.     (setq   e (cdr(assoc 0 s1)))
  90.     (if (and(= e "INSERT")(= lay "GCD"))(progn
  91.        (setq d1 (cdr(assoc 10 s1)))
  92.        (setq JD (cdr(assoc 50 s1)))
  93.        (setq  b (cdadr (cadr (assoc -3 s1))))
  94.        (setq  b (vl-princ-to-string b))
  95.        (setq  b (vl-string-translate "" "" B))
  96.        (cond ((= b "202101")(setq height (rtos (last d1) 2 2))
  97.         (MINSERTA d1 bl height)
  98.        )
  99.        ((= b "186400")(setq H (rtos (last d1) 2 1))
  100.         (setq k (vl-string-search "." h))
  101.         (setq h1 (substr h 1 k) h2 (substr h (+ k 2) 1))
  102.         (MINSERTS d1 bl JD h1 h2)
  103.        )
  104.        )
  105.      ))
  106.   )
  107.        (command "_.erase" s "")
  108.   (setq ETIME (getvar "date"))
  109.   (prompt
  110.     (strcat
  111.       "\n程式共耗用时间: "
  112.       (rtos (* 86400.0 (- (- ETIME STIME) (fix (- ETIME STIME)))) 2 3)
  113.       "秒"
  114.     )
  115.   )
  116. )
  117. ;;;调用南方CASS命令合并
  118. (defun c:CASShb(/ s STIME)
  119.   (setq s (ssget))
  120.   (setq STIME (getvar "date"))
  121.   (command "resumegcd" s "");;;这个就是南方的合并命令,explodegcd 就是打散命令
  122.   (setq ETIME (getvar "date"))
  123.   (prompt
  124.     (strcat
  125.       "\n程式共耗用时间: "
  126.       (rtos (* 86400.0 (- (- ETIME STIME) (fix (- ETIME STIME)))) 2 3)
  127.       "秒"
  128.     )
  129.   )
  130. )  
  131.   
  132. ;;插入块打散后用
  133. (defun MKINSERT (PT SX SY SSZ ZJ DATA)
  134.   (entmake (list '(0 . "INSERT")
  135.                  '(100 . "AcDbBlockReference")
  136.                  (cons 2 "GC200")
  137.                  (cons 8 "GCD")
  138.                  (cons 10 PT)
  139.                  (cons 41 SX)
  140.                  (cons 42 SY)
  141.                  (cons 43 SSZ)
  142.                  (cons 50 ZJ)
  143.                  (list -3 (list "SOUTH" (cons 1000 DATA)))
  144.             )
  145.   )
  146. )
  147. ;;;写文字岸上点打散后用
  148. (defun MKTEXTA (PT HEI ANG STR DATA / PTX TOBJ)
  149.     (setq pty (polar pt ANG 0.5))
  150.     (entmake (list '(0 . "TEXT")
  151.                    (cons 7 "HZ")
  152.                    (cons 8 "GCD")      
  153.                    (cons 10 PT)
  154.                    (cons 40 HEI) ;;字高
  155.                    (cons 41 0.8)      
  156.                    (cons 50 ANG)
  157.                    (cons 1 STR)
  158.                    (cons 72 0)  ;;左对齐
  159.                    (cons 73 2)
  160.                    (cons 11 pty)
  161.                    (list -3 (list "SOUTH" (cons 1000 DATA)))
  162.               )
  163.     )
  164. )
  165. ;;;写文字水下点左打散后用
  166. (defun MKTEXTB (PT HEI ANG STR DATA / PTz TOBJ)
  167.     (setq ptz (polar pt ANG -0.8))
  168.     (entmake (list '(0 . "TEXT")
  169.                    (cons 7 "HZ")
  170.                    (cons 8 "GCD")      
  171.                    (cons 10 PT)
  172.                    (cons 40 HEI) ;;字高
  173.                    (cons 41 0.8)      
  174.                    (cons 50 ANG)
  175.                    (cons 1 STR)
  176.                    (cons 11 ptz)
  177.                    (cons 72 2)  ;;右对齐
  178.                    (cons 73 0)
  179.                    (list -3 (list "SOUTH" (cons 1000 DATA)))
  180.               )
  181.     )
  182. )
  183. ;;;写文字水下点右打散后用
  184. (defun MKTEXTC (PT HEI ANG STR DATA / PTy TOBJ)
  185.     (setq pty (polar pt ANG 0.6))
  186.     (entmake (list '(0 . "TEXT")
  187.                    (cons 7 "HZ")
  188.                    (cons 8 "GCD")      
  189.                    (cons 10 PTy)
  190.                    (cons 40 HEI) ;;字高
  191.                    (cons 41 0.8)      
  192.                    (cons 50 ANG)
  193.                    (cons 1 STR)
  194.                    (cons 11 pty)
  195.                    (cons 72 0)  ;;左对齐
  196.                    (cons 73 0)
  197.                    (list -3 (list "SOUTH" (cons 1000 DATA)))
  198.               )
  199.     )
  200. )
  201. ;;;插入块(岸上点)
  202. (defun MINSERTA (inspt scale height / pt)
  203.   (setq pt (polar inspt 0 (* 1.2 scale)))
  204.   (entmake (list
  205.              '(0 . "INSERT")
  206.              '(100 . "AcDbEntity")
  207.              '(100 . "AcDbBlockReference")
  208.              '(66 . 1)
  209.              (cons 2 "GC200")
  210.              (cons 10 inspt)
  211.              (cons 41 scale)
  212.              (cons 42 scale)
  213.              (cons 43 scale)
  214.              '(-3 ("SOUTH" (1000 . "202101")))
  215.            )
  216.   )
  217.   ;;;插入属性
  218.     (entmake (list
  219.             '(0 . "ATTRIB")
  220.             '(100 . "AcDbEntity")
  221.             '(100 . "AcDbText")
  222.             (cons 10 pt)
  223.             (cons 40 (* 10.0 scale))
  224.             (cons 50 0)
  225.             (cons 41 0.8)
  226.             (cons 51 0)
  227.             (cons 1 height)
  228.             (cons 7 "HZ")
  229.             (cons 72 0)
  230.             (cons 11 pt)
  231.             '(100 . "AcDbAttribute")
  232.             (cons 2 "height")
  233.             (cons 70 0)
  234.             (cons 74 2)
  235.            )
  236.     )
  237.            ;;;结束标志
  238.           (entmake '((0 . "SEQEND")))
  239.            (princ)
  240.   )
  241. ;;;插入块(水下点)
  242. (defun MINSERTS (inspt scale JD integer decimal / pt ptz pty)
  243.   (setq pt (polar inspt 0 (* 1.2 scale)))
  244.   (setq ptz (polar pt jd -0.8))
  245.   (setq pty (polar pt jd 0.5))
  246.   (entmake (list
  247.              '(0 . "INSERT")
  248.              '(100 . "AcDbEntity")
  249.              '(100 . "AcDbBlockReference")
  250.              '(66 . 1)
  251.              (cons 2 "GC200")
  252.              (cons 10 inspt)
  253.              (cons 41 scale)
  254.              (cons 42 scale)
  255.              (cons 43 scale)
  256.              (cons 50 JD)
  257.              '(-3 ("SOUTH" (1000 . "186400")))
  258.            )
  259.   )
  260.   ;;;插入属性
  261.     (entmake (list
  262.             '(0 . "ATTRIB")
  263.             '(100 . "AcDbEntity")
  264.             '(100 . "AcDbText")
  265.             (cons 10 pt)
  266.             (cons 40 (* 10.0 scale))
  267.             (cons 50 JD)
  268.             (cons 41 0.8)
  269.             (cons 51 0)
  270.             (cons 1 integer)
  271.             (cons 7 "HZ")
  272.             (cons 72 2)  ;;右对齐
  273.             (cons 11 ptz)
  274.             '(100 . "AcDbAttribute")
  275.             (cons 2 "integer")
  276.             (cons 70 0)
  277.             (cons 73 2)
  278.             (cons 74 1)
  279.            )
  280.     )
  281.     (entmake (list
  282.             '(0 . "ATTRIB")
  283.             '(100 . "AcDbEntity")
  284.             '(100 . "AcDbText")
  285.             (cons 10 pt)
  286.             (cons 40 (* 10.0 scale))
  287.             (cons 50 JD)
  288.             (cons 41 0.8)
  289.             (cons 51 0)
  290.             (cons 1 decimal)
  291.             (cons 7 "HZ")
  292.             (cons 72 0) ;;左对齐
  293.             (cons 11 pty)
  294.             '(100 . "AcDbAttribute")
  295.             (cons 2 "decimal")
  296.             (cons 70 0)
  297.             (cons 73 2)
  298.             (cons 74 1)
  299.            )
  300.     )
  301.            ;;;结束标志
  302.           (entmake '((0 . "SEQEND")))
  303.            (princ)
  304.   )
发表于 2015-3-18 08:37 | 显示全部楼层
很想学习学习
发表于 2015-8-5 06:39 | 显示全部楼层
发帖多于是10.。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 18:31 , Processed in 0.669197 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表