天正,哎你咋就这么难解呢?
本帖最后由 wangshang323 于 2014-7-4 17:17 编辑建筑绘图基本用天正,所以后面的设计都是天正图为基础图。如何识别天正的图元为后续自己程序接力成为很多专业的第一步要做的事情?
相信很多人都知道天正的图元是实体,比如墙体柱子等。而天正实体的参数不能直接修改,所以只能另详他法了。
小弟也是一直仰望明经的高手所以谨以此小结抛砖引玉欢迎高手指正。。。。
1、如何画天正墙?
这个大家都知道 "TWall"(版本不同可能有些不同)。但是不是CAD内部命令,用(COMMAND "TWall" ....)有次数限制。所以我基本上只用一次。后面其用它办法来绘制。
2、如何获得天正墙体的起点和终点?
好了,绘制好了墙体 可以用(vlax-curve-getStartPoint iobj)得到起点、(vlax-curve-getEndPoint iobj)终点 ;为了减少代码 iobj自己去转换。不清楚的可以跟帖询问。
3、如何修改天正墙体的参数?
由于天正实体一般不要用纯lisp修改表(经常会CAD奔溃),用(Vlax-Put-Property。。。。)来修改(推荐猫老师的开发助手)。
下面列出常规可以直接修改的情况(有些不常用的就没一一试了):
(Vlax-Put-Property objty 'Layer "0") ;改图层
(Vlax-Put-Property objty 'LeftWidth200);改左墙宽
(Vlax-Put-Property objty 'RightWidth200) ;改右宽度
(Vlax-Put-Property objty 'Elevation 100) ;改墙底标高
(Vlax-Put-Property objty 'Height 2000) ;改墙高度
(Vlax-Put-Property objty 'Visible 0) ;隐藏 显示就改为-1.
不能修改的有:
(Vlax-Put-Property objty 'Color 2) ;颜色改不了 【无效】
(Vlax-Put-Property objty 'LinetypeScale 1000);线型比例 【无效】
期待大神来帮忙解决。
4、如何修改天正墙体坐标?
直接修改我还没有办法。我想了另外一个方法。在说之前要说另外的一个小发现:天正墙体用sc(SCALE 缩放)不会修改墙体宽度,只会修改墙体的长度。有了这个特性就可以修改墙体了。
只说思路: 先画(或找)一段墙。获得起点和终点坐标。算出长度。移动到你要的地方(由于没发现起点和终点参数 只能用move来搞了)。再通过sc来调节墙体长度,即得到你要的墙体了。
5、柱
同样柱子宽度、角度等都可以直接改。柱子的位置可以通过(cdr(assoc 11 (entget (car (entsel))))) 再次提醒不要用表修改的方式修改坐标。用move来改。(对于不能接受command的人 我只能说:“这个是病得治啊!”)
希望上面说的能帮助你。再次呼唤大神降临给我一些指点。谢谢。
很有用,..... 天正的命令调用也是个问题,不知道对象怎么表达,比如门窗编号复位,command "t81_" 后面跟对象名称或者是选集都无法运行… 哎 路过,支持一个,顶你 你这些命令在哪里,哪个文件找来改? 支持!天正有点为难我们啊。 天正是有意为之。。
页:
[1]