明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1644|回复: 14

[提问] 增加输入高程功能

[复制链接]
发表于 2023-6-6 09:46:35 | 显示全部楼层 |阅读模式
网上下载的画多段线垂线程序,挺好用,麻烦大侠帮增加输入高程功能

本帖子中包含更多资源

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

x
发表于 2023-6-6 09:54:41 | 显示全部楼层
你这问题也太多了吧
回复 支持 1 反对 0

使用道具 举报

发表于 2023-6-7 14:55:03 | 显示全部楼层
本帖最后由 gaics 于 2023-6-7 14:56 编辑
wanhongron 发表于 2023-6-6 20:53
高手谦虚啦,我感觉不知道从哪里下手,就想能把输入的高程ZZ赋给生成的垂线,看看怎么改?
  1. (defun c:CCX (/ e p d zz p1)
  2.   (setq ss (ssadd))
  3.   (setq d 10)
  4.   (setq e (car (entsel "\n拾取基准线")))
  5.   (while (setq p (getpoint "\n垂足位置"))
  6.     (setq zz (getreal "\n输入高程:"))
  7.     (setq p (vlax-curve-getclosestpointto e p))
  8.     (setq p1
  9.      (polar p
  10.       (+ (angle p
  11.           (mapcar '+
  12.             (vlax-curve-getfirstDeriv
  13.               e
  14.               (vlax-curve-getParamAtPoint e p)
  15.             )
  16.             p
  17.           )
  18.          )
  19.          (* pi 0.5)
  20.       )
  21.       d
  22.      )
  23.     )
  24.     (entmakex
  25.       (list
  26.   '(0 . "LINE")
  27.   (cons 10 (list (car p) (cadr p) zz))
  28.   (cons 11 (list (car p1) (cadr p1) zz))
  29.       )
  30.     )
  31.   )
  32.   (princ)
  33. )
新生成的线段貌似无法合并,暂时移除pedit命令。

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-6-6 20:51:20 | 显示全部楼层
;画多段线垂线
(defun c:CCX(/ e p d)
(setq ss (ssadd))
  (setq d 10);定义垂线长度
  (setq e(car(entsel "\n拾取基准线")))
    (while(setq p(getpoint "\n垂足位置"))
      (setq zz (getreal "\n输入高程:"))
      (entmakex ( list'(0 . "LINE")
                 (cons 10(setq p(vlax-curve-getclosestpointto e p)))
                 (cons 11(polar p(+(angle p(mapcar'+(vlax-curve-getfirstDeriv e(vlax-curve-getParamAtPoint e p))p))(* pi 0.5))d))))
(ssadd (entlast) ss)

    )
(command "_pedit" "M" ss """y""w""0""j""""")
  (princ)
)
发表于 2023-6-6 11:30:22 | 显示全部楼层
楼主上几张生活照,让大侠们提提神才能更好的服务论坛啊
 楼主| 发表于 2023-6-6 11:57:06 | 显示全部楼层
辛苦大家了,我做水利设计的,老被领导叼杠效率低,工作压力大了就什么方法都想
发表于 2023-6-6 12:50:48 | 显示全部楼层
谢谢楼主分享
 楼主| 发表于 2023-6-6 15:38:06 | 显示全部楼层
麻烦指点一下在创建直线的时候怎么添加Z高程值
发表于 2023-6-6 15:43:05 | 显示全部楼层
wanhongron 发表于 2023-6-6 15:38
麻烦指点一下在创建直线的时候怎么添加Z高程值

兄弟,那你明经币搞个悬赏啥都有了
 楼主| 发表于 2023-6-6 17:10:15 | 显示全部楼层
(entmakex ( list'(0 . "LINE")
                 (cons 10(setq p(vlax-curve-getclosestpointto e p)))
                 (cons 11(polar p(+(angle p(mapcar'+(vlax-curve-getfirstDeriv e(vlax-curve-getParamAtPoint e p))p))(* pi 0.5))d))))
生成直线只有x、y坐标,怎么增加Z坐标?
发表于 2023-6-6 17:43:37 | 显示全部楼层
(setq p(vlax-curve-getclosestpointto e p))
(cons 10(list (car p) (cadr p) z))
 楼主| 发表于 2023-6-6 18:00:46 | 显示全部楼层
@gaics侠,感谢你的指点,可是本人比较笨拙,麻烦在我上传的源程序上帮改下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 21:36 , Processed in 0.165338 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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