明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3624|回复: 14

[求助]请问高手,铁路线应该怎么画???

  [复制链接]
发表于 2004-3-13 14:13:00 | 显示全部楼层 |阅读模式
偶在画一个地图



不知铁路线该怎么画(一段黑、一段白的)


是不是有什么图库可以下载,直接应用呀?


还是要自己定义线型?


多谢拉!!
发表于 2004-3-14 17:29:00 | 显示全部楼层
你能把你要画的样图发个么?
发表于 2004-3-15 08:35:00 | 显示全部楼层
用多段线画,向两边偏移(成三条线),然后把中间的线改用虚线线型以及改变其线宽。
 楼主| 发表于 2004-3-15 20:06:00 | 显示全部楼层
是这样的

本帖子中包含更多资源

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

x
发表于 2004-3-16 20:58:00 | 显示全部楼层
能给个电子版的么?
发表于 2004-3-16 22:04:00 | 显示全部楼层
还有黑白的长度有什么规定么?
发表于 2004-3-16 23:09:00 | 显示全部楼层
这样行吗?



本帖子中包含更多资源

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

x
 楼主| 发表于 2004-3-17 22:48:00 | 显示全部楼层
怎么画的呀?
发表于 2004-3-18 18:02:00 | 显示全部楼层
写了个程序给你,可以把样条曲线编辑成你例图中的效果
发表于 2004-3-18 18:06:00 | 显示全部楼层
;把spline变成铁路线示图
;ljc 2004.3
(DEFUN O1O( name cd / cm tc os q zd qd ang qdz zdy w1 w2 w3 w4 p1p2 p3 p4 ) ;name--spline的图元名 cd铁路线的宽度
(setq cm(getvar "cmdecho") tc(getvar "clayer") os(getvar "osmode"))
(command "osnap" "off")
(setq cd(/ cd 2))
(setq q(entget name))
(setq Zd (cdr(assoc 10 q)))
(setq qd (cdr(LAST q)))
(SETQ ANG (ANGLE QD ZD))
(SETQ qdz (polar qd (+ ANG ( / PI 2)) cd))
(setq qdy (polar qd (- ANG ( / PI 2)) cd))
(command "offset" cd name qdz "")
(setq w1(entlast))
(setq p1 (cdr(assoc 10 (entget w1))))
(setq p2 (cdr(last (entget w1))))
(command "offset" cd name qdy "")
(setq w2(entlast))
(setq p4 (cdr(assoc 10 (entget w2))))
(setq p3 (cdr(last (entget w2))))
(command "line" p1 p4 "") (setq w3(entlast))
(command "line" p2 p3 "") (setq w4(entlast))
(command "-bhatch" "p" "solid" "s" w1 w2 w3 w4 "" "")
(command "erase" w1 w2 w3 w4 name "")
(setvar "cmdecho" cm)
(setvar "osmode" os)
(setvar "clayer" tc)
)
(defun c:tl( / line n0 j linex q qd zd cdd ang qdz dqy)
(setq cm(getvar "cmdecho") tc(getvar "clayer") os(getvar "osmode"))
(command "osnap" "off")
(print "请选择铁路线:") (print)
(setq line (ssget '((0 . "SPLINE"))))
(setq ds(getint "请输黑白段长度:"))
(setq cd(getreal "请输入绘制铁路线的宽度:"))
(command "ucs" "" "")
(command "erase" (ssget "x" '((0 . "point"))) "")
(setq n0 (sslength line))
(setq j 0 n2 0)
(repeat n0
(setq linex (ssname line j))
(setq cdd(/ cd 2))
(setq q(entget linex))
(setq Zd (cdr(assoc 10 q)))
(setq qd (cdr(LAST q)))
(SETQ ANG (ANGLE QD ZD))
(SETQ qdz (polar qd (+ ANG ( / PI 2)) (* 10 cd)))
(setq qdy (polar qd (- ANG ( / PI 2)) (* 10 cd)))
(command "offset" cdd linex qdz linex qdy "")
(command "measure" linex ds "")
(command)
(setq point (ssget "x" '((0 . "point"))))
(setq n (sslength point))
(setq i 0 ii 0)
(repeat n
(setq p1 (cdr(assoc 10 (entget(ssname point i)))))
(command "erase" (ssname point i) "")
(command "zoom" "w" (polar p1 (* pi 0.75) ds ) (polar p1 (* pi -0.25) ds ) )
(command "break" (list (car p1) (cadr p1) (caddr p1)) "@" )
(if (= 2 ii) (setq ii 0))
(if (= 0 ii) (o1o (entlast) cd) (command "erase" (entlast) ""))
(setq ii (1+ ii))
(setq i (+ i 1))
)
(setq j (+ j 1))
(if (= 2 ii) (o1o linex cd) (command "erase" linex ""))
)
(command "zoom" "e" "")
(setvar "cmdecho" cm)
(setvar "osmode" os)
(setvar "clayer" tc)
)
(print "敲入tL运行程序---LJC") (PRINT)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:41 , Processed in 0.195445 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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