明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1157|回复: 3

[函数] 大神帮忙看看这个简单小程序~

[复制链接]
发表于 2015-7-6 09:09:46 | 显示全部楼层 |阅读模式
(defun C:pp (/ )
  (setq oce (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (vl-load-com)
  (command ".pline")
  (setq l_ss (entlast))
  (command "lengthen" l_ss "")
  (setq cd (getvar "perimeter"))
  (setq qd1 (vlax-curve-getPointAtDist l_ss 0))
  (setq qd2 (vlax-curve-getPointAtDist l_ss (* cd 0.3)))
  (setq qd3 (vlax-curve-getPointAtDist l_ss (* cd 0.6)))
  (setq qd4 (vlax-curve-getPointAtDist l_ss (* cd 0.7)))
  (setq qd5 (vlax-curve-getPointAtDist l_ss cd))
(setvar "cmdecho" oce)
  (princ)
  )
我想实现随便画一条线 然后计算出在这条线上到这条线端点百分比长度的点的坐标,为什么我单句运行就可以实现,一起运行的话到(command "lengthen" l_ss "")往后就不运算了 我咋也找不出问题啊!而且还弹出 点无效。; 错误: 函数被取消 的提示错误在哪呢?
另外我想写一个类似CAD画线那种带预览的画线程序(选一个点然后跟踪鼠标显示线,而不是选俩个点直接出线) 利用(redraw) (grdraw)写了半天也不行, 所以用 (command ".pline")代替了 问题是不是在这啊?


发表于 2015-7-6 09:20:45 | 显示全部楼层
(setq @pt1 (getpoint "\n指定起始点: "))
  (setq @pt2 (getpoint @pt1 "\n指定第二点: "))
 楼主| 发表于 2015-7-6 09:25:08 | 显示全部楼层
(getpoint pt) 我真是猪脑子 沉了吧
发表于 2015-7-6 09:26:29 | 显示全部楼层
4041186888 发表于 2015-7-6 09:25
(getpoint pt) 我真是猪脑子 沉了吧

用entmake ,尽量少用command

(setq @pt1 (getpoint "\n指定起始点: "))
  (setq @pt2 (getpoint @pt1 "\n指定第二点: "))
  (entmake (list '(0 . "LWPOLYLINE")
                 '(100 . "AcDbEntity")
                            '(100 . "AcDbPolyline")
                                (cons 90 2)
                                (cons 10 @pt1)
                                (cons 10 @pt2)
                   )
  )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 20:19 , Processed in 0.238130 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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