masterlong 发表于 2017-11-28 21:20:25

G版的局部放大程序
我这里十次有九次出错
所以干脆自己做了这么一个
利用CAD本身的功能
加一些定位操作就搞定了

自贡黄明儒 发表于 2017-11-28 21:32:26

masterlong 发表于 2017-11-28 21:17
不是建筑专业对天正不熟悉
个人习惯要求建筑提资转t3
需要画大样的时候


哪个版本开始有EXPORTLAYOUT?

masterlong 发表于 2017-11-28 21:38:35

本帖最后由 masterlong 于 2017-11-28 21:39 编辑

过去一直用XP+2004
但是为了测试程序兼容性
也装了08、10、12、14
偶然发现12里有这么个功能
但没有特意去看哪个版本开始有的

xinxirong 发表于 2017-11-28 23:16:11

2010版就有,2013 2016都不支持天正

rhww 发表于 2017-11-29 13:26:15

学习一下。谢谢

masterlong 发表于 2017-11-29 17:38:52

CAD是不可能主动支持天正软件的
因为天正是基于CAD进行的二次开发软件
天正图元都是自定义图元

zixuan203344 发表于 2017-11-29 23:47:07

本帖最后由 zixuan203344 于 2017-11-30 00:08 编辑

缺少的俩函数
;p1基于p0放大sc倍
(defun p0_sc_p1(p0 p1 sc)
(mapcar(function(lambda(x y)(+ x (* (- y x) sc)))) p0 p1)
)
;两点的中点
(defun getmidpo(lst)
(mapcar(function(lambda(x y)(/ (+ x y) 2)))(car lst) (cadr lst))
)


另外下面函数可以简写
;;选择集转为图元列表
(defun ss2list ( ss / n i elist )
        (vl-remove-if-not(function(lambda(x)(= (type x) 'ENAME))) (mapcar 'cadr (ssnamex ss)))
)

zixuan203344 发表于 2017-11-30 09:29:54

其实不算新人,来这里注册一年有余了,只不过很少发帖子和回复罢了

masterlong 发表于 2017-11-30 09:35:19

与选择集有关的函数
在执行前都应该先检验参数是否选择集
楼上的函数可以这样改
(if (= (type ss) 'Pickset)(mapcar 'cadr (ssnamex ss)))

masterlong 发表于 2017-11-30 09:39:28

本帖最后由 masterlong 于 2017-11-30 09:42 编辑

;;求点对中点
(defun getmidpo( pts / P1 P2 X Y )
      (setq p1 (car pts) p2 (cadr pts))
      (if (= (length p1) (length p2))
                nil
                (setq p1 (list (car p1) (cadr p1))
                              p2 (list (car p2) (cadr p2))
                )
      )
      (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) P1 P2)
)

“/”在使用时
要注意除数是整数还是小数
另外p1、p2格式不同是容易被忽视的
页: 1 [2] 3 4
查看完整版本: CAD截图做大样