乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 125|回复: 9

[单线变双线,并保留原线]

[复制链接]

19

主题

46

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2004-2-9 10:31:00 | 显示全部楼层 |阅读模式
[单线变双线,并保留原线]实现变道路的中心线为道路双线
如何实现下列功能:选中一条直线L(线型为虚线),以此线L为中心,各向两边OFFSET,距离直线L均为a,OFFSET后生成的两条线为实线(CONTINUIOUS),原直线L不变。
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-2-10 01:21:00 | 显示全部楼层
  1. (defun c:x2 (/ ss vss dist)
  2.    (princ "\n单线变双v.1.1-------by 无痕.2004.2\n选择要变双的曲线:")
  3.    (setq ss (ssget   '((0 . "*line,arc,ellipse,circle")) )
  4.   vss (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
  5.                dist (getdist "\n输入偏移距离:"))
  6.    (vlax-for obj vss (vla-offset obj dist)(vla-offset obj (- 0 dist)))
  7. )
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-2-9 12:40:00 | 显示全部楼层
用VLISP中的OFFSET方法
回复

使用道具 举报

33

主题

253

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
385
发表于 2004-2-9 21:23:00 | 显示全部楼层
;线段双向偏移
;ljc.2004.2
(DEFUN C:OO( / qd zd         name2 ss qd1 zd1 CD tc os cdq )
                                                                         (setq os(getvar "osmode"))
                                                                         (command "osnap" "off")
                                                                         (setq cd(getint "请输入偏移距离:"))
                                                                         (if (= cd nil) (SETQ CD CCD))
                                                                         (setq ss (ssget         '((0 . "LINE")) ) )
                                                                         (print "请选择线段:")
                                                                         (SETQ N (SSLENGTH SS))
                                                                         (SETQ A (- N 1))
                                                                 (REPEAT N
                                                                         (setq name(ssname ss A))
                                                                         (setq q(entget name))
                                                                         (setq Zd (cdr(assoc 11 q))         qd (cdr(assoc 10 q)) )
                                                                         (SETQ ANG (ANGLE QD ZD))
                                                                         (SETQ         qdz (polar qd (+ ANG ( / PI 2)) cd)         qdy (polar qd (- ANG ( / PI 2)) cd))
                                                                         (command "offset"         cd         name qdz         "")
                                                                         (command "change" (entlast)         "" "p"         "lt" "CONTINUOUS" "" "")
                                                                         (command "offset"         cd         name qdy "")
                                                                         (command "change" (entlast) ""         "p" "lt"         "CONTINUOUS" "" "")
                                                                         (command)
                                                                         (SETQ         A (- A 1))
                                                         )
                                                         (SETQ CCD CD)
                                                         (setvar "osmode" os)
                                                                         
)
回复

使用道具 举报

41

主题

657

帖子

9

银币

中流砥柱

Rank: 25

铜币
821
发表于 2004-2-9 21:53:00 | 显示全部楼层
好程序~~画路边线就简单了!
回复

使用道具 举报

7

主题

24

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2004-2-9 22:04:00 | 显示全部楼层
高手能不能把程序扩展一下,让它能使用于其它的线:         pline.....
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-2-10 09:08:00 | 显示全部楼层
樓上的這個是我目前見到最簡短的.
回复

使用道具 举报

33

主题

253

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
385
发表于 2004-2-10 12:45:00 | 显示全部楼层
命令: _appload 已成功加载 x2.lsp。
命令:
命令:
命令: x2
单线变双v.1.1-------by 无痕.2004.2
选择要变双的曲线:
选择对象: 指定对角点: 找到 6 个
选择对象:
; 错误: no function definition: VLAX-GET-ACAD-OBJECT
这是什么原因?
回复

使用道具 举报

7

主题

24

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2004-2-10 13:00:00 | 显示全部楼层
谢谢无痕的帮助!!
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-2-10 13:26:00 | 显示全部楼层
先运行(vl-load-com)。改一下过滤,重贴
  1. (defun c:x2 (/ ss vss dist)     (vl-load-com)
  2.    (princ "\n单线变双v.1.1-------by 无痕.2004.2\n选择要变双的曲线:")
  3.    (setq ss (ssget   '((0 . "Arc,Circle,Ellipse,Line,LwPolyline,Polyline,Spline,XLine")) )
  4.   vss (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
  5.                dist (getdist "\n输入偏移距离:"))
  6.    (vlax-for obj vss (vla-offset obj dist)(vla-offset obj (- 0 dist)))
  7. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-8 13:59 , Processed in 0.612355 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表