明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: kkdolphin

[提问] 斜着画房屋

[复制链接]
 楼主| 发表于 2020-8-15 08:49:25 | 显示全部楼层
本帖最后由 kkdolphin 于 2020-8-15 09:05 编辑

要CAD2014以上才能用吧。有一个问题,我指定点,不一定要开对象捕捉,因为有时候非DWG的图片没有点的,在图片上也能用。第三个点要在第二个点所作的垂线上。如果有原码lISP就更好,没有也可以。
回复

使用道具 举报

 楼主| 发表于 2020-8-15 08:55:14 | 显示全部楼层
本帖最后由 kkdolphin 于 2020-8-15 09:03 编辑

可以参考下面这个程序,有取整,只是这个程序有几个问题,它缺少了自动判断相连两条边是否垂直,要输入旋转角度,第二个没有回退,第三精度是个位,第四个连成的是一条条直线。(defun c:xhfw(/ ang1 dis1 mode pt1 pt2 while_if1)
        (vl-load-com)
        (initget 1)
        (setq pt2 (getpoint "\n指定第一点:"))
        (setq mode 1)
        (setvar "CMDECHO" 0)
        (vl-cmdf "UNDO" "be")
        (while t
                (setq pt1 pt2)
                (if (not (setq ang1 (getangle pt1 "\n指定旋转角度<0>:")))
                        (setq ang1 0)
                )
                (setq while_if1 t)
                (while while_if1
                        (initget "Z")
                        (setq dis1 (getdist pt1 (strcat "\n指定直线长度[Z切换,当前精度为(默认是2000)" (itoa mode) "]:")))
                        (cond
                                ((not dis1)
                                        (setq dis1 2000)
                                        (setq while_if1 nil)
                                )
                                ((equal dis1 "Z")
                                        (setq mode (- 11 mode))
                                )
                                (t
                                        (setq while_if1 nil)
                                )
                        )
                )
                (setq dis1 (* mode (fix (+ 0.5 (/ dis1 mode 1.0))))
                        pt2 (polar pt1 ang1 dis1)
                )
                (entmakex (list '(0 . "LINE") (cons 10 (trans pt1 1 0)) (cons 11 (trans pt2 1 0))))
        )
        (vl-cmdf "UNDO" "e")
        (setvar "CMDECHO" 1)
        (setq *error* $orr)
        (princ)
)
(princ "\n:xhfw。")
(princ)。
补充说明:1,它的开始选择直线是符合要求的。2,它可以选点也可以不选点画图。3,过程中开动态捕捉,能显示作图的点与上一点的距离。
回复

使用道具 举报

发表于 2020-8-15 09:07:24 | 显示全部楼层
本帖最后由 xvjiex 于 2020-8-15 09:23 编辑

软件没有开捕捉,你再试试。捕捉你可以自己设定(按f3键)。第三个点在第二个点所作的垂线上,如果不在垂直线上,它会自动移到垂直线位置(不是我开捕捉,是软件自动帮你定位到垂直点上),我们都再试试。你可以在图片上测试。
回复

使用道具 举报

发表于 2020-8-15 09:48:22 | 显示全部楼层
完善后给你源码
回复

使用道具 举报

 楼主| 发表于 2020-8-15 13:39:04 | 显示全部楼层
本帖最后由 kkdolphin 于 2020-8-15 14:01 编辑

还有3个问题:1.在低版本(低于CAD2014)输入命令,显示:no function definition: COMMAND-S.能否解决.
2,回车结束后,不要自动闭合,形成一段连续的多段线就可以。很多时候房屋相互垂直部分最后并不闭合
3,精度能否一个选择,不常用的,精度位数为1。
完善后再给你设置最佳答案。辛苦了

回复

使用道具 举报

发表于 2020-8-15 15:15:54 | 显示全部楼层
本帖最后由 xvjiex 于 2020-8-15 15:42 编辑

已经更新。1.不知道你的版本?请再测试。2.已经取消自动闭合的功能。3.精度已经开出对话框,用户自己输入。请到19楼免费下载测试。
回复

使用道具 举报

 楼主| 发表于 2020-8-15 17:25:16 | 显示全部楼层
谢谢,已经解决了。很好。辛苦了。方便的时候给我源码吧。
回复

使用道具 举报

发表于 2020-8-15 18:25:59 | 显示全部楼层
已经更新为源码,请免费下载。感谢采纳!
回复

使用道具 举报

 楼主| 发表于 2020-8-15 23:28:51 | 显示全部楼层
xvjiex 发表于 2020-8-15 18:25
已经更新为源码,请免费下载。感谢采纳!

能否方便增加一个功能:除了选点选确定长度,还可以自己输入长度,因为今晚试过,有些房屋要加建1000mm的护栏,但是原图没有,需要自行输入。
回复

使用道具 举报

发表于 2020-8-16 08:19:51 | 显示全部楼层
这个有点麻烦,不仅是输入距离,还要方向。围墙可能不全是直角弯吧?不知道围墙的工作量大不大,你再考虑一下是否需要再花费开发新功能。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 21:44 , Processed in 0.140651 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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